dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #34750
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 17825: minor fixes, adds merge for sharing
------------------------------------------------------------
revno: 17825
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2014-12-29 14:13:12 +0100
message:
minor fixes, adds merge for sharing
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseIdentifiableObject.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/Mergeable.java
dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ImportOptions.java
dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseIdentifiableObject.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseIdentifiableObject.java 2014-12-22 13:52:51 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseIdentifiableObject.java 2014-12-29 13:13:12 +0000
@@ -39,7 +39,9 @@
import org.hisp.dhis.acl.Access;
import org.hisp.dhis.acl.AccessStringHelper;
import org.hisp.dhis.common.annotation.Description;
+import org.hisp.dhis.common.view.DetailedView;
import org.hisp.dhis.common.view.DimensionalView;
+import org.hisp.dhis.common.view.ExportView;
import org.hisp.dhis.common.view.SharingBasicView;
import org.hisp.dhis.common.view.SharingDetailedView;
import org.hisp.dhis.common.view.SharingExportView;
@@ -107,7 +109,7 @@
/**
* Access string for public access.
*/
- protected String publicAccess = AccessStringHelper.DEFAULT;
+ protected String publicAccess;
/**
* Owner of this object.
@@ -280,7 +282,7 @@
@Override
@JsonProperty
- @JsonView( { SharingBasicView.class, SharingDetailedView.class, SharingExportView.class } )
+ @JsonView( { SharingBasicView.class, SharingDetailedView.class, SharingExportView.class, ExportView.class, DetailedView.class } )
@JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
@PropertyRange( min = 8, max = 8 )
public String getPublicAccess()
@@ -295,7 +297,7 @@
@Override
@JsonProperty
- @JsonView( { SharingBasicView.class, SharingDetailedView.class, SharingExportView.class } )
+ @JsonView( { SharingBasicView.class, SharingDetailedView.class, SharingExportView.class, ExportView.class, DetailedView.class } )
@JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
public boolean getExternalAccess()
{
@@ -309,7 +311,7 @@
@Override
@JsonProperty
- @JsonView( { SharingBasicView.class, SharingDetailedView.class, SharingExportView.class } )
+ @JsonView( { SharingBasicView.class, SharingDetailedView.class, SharingExportView.class, ExportView.class, DetailedView.class } )
@JsonSerialize( as = BaseIdentifiableObject.class )
@JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
public User getUser()
@@ -324,7 +326,7 @@
@Override
@JsonProperty
- @JsonView( { SharingBasicView.class, SharingDetailedView.class, SharingExportView.class } )
+ @JsonView( { SharingBasicView.class, SharingDetailedView.class, SharingExportView.class, ExportView.class, DetailedView.class } )
@JacksonXmlElementWrapper( localName = "userGroupAccesses", namespace = DxfNamespaces.DXF_2_0 )
@JacksonXmlProperty( localName = "userGroupAccess", namespace = DxfNamespaces.DXF_2_0 )
public Set<UserGroupAccess> getUserGroupAccesses()
@@ -450,6 +452,23 @@
}
/**
+ * Clear out all sharing properties.
+ *
+ * @param clearUser Clear out user property
+ */
+ public void clearSharing( boolean clearUser )
+ {
+ if ( clearUser )
+ {
+ user = null;
+ }
+
+ publicAccess = AccessStringHelper.DEFAULT;
+ externalAccess = false;
+ userGroupAccesses.clear();
+ }
+
+ /**
* Get a map of uids to internal identifiers
*
* @param objects the IdentifiableObjects to put in the map
@@ -527,11 +546,27 @@
{
Validate.notNull( other );
- this.uid = other.getUid() == null ? this.uid : other.getUid();
- this.name = other.getName() == null ? this.name : other.getName();
- this.code = other.getCode() == null ? this.code : other.getCode();
- this.lastUpdated = other.getLastUpdated() == null ? this.lastUpdated : other.getLastUpdated();
- this.created = other.getCreated() == null ? this.created : other.getCreated();
- this.user = other.getUser() == null ? this.user : other.getUser();
+ uid = other.getUid() == null ? uid : other.getUid();
+ name = other.getName() == null ? name : other.getName();
+ code = other.getCode() == null ? code : other.getCode();
+ lastUpdated = other.getLastUpdated() == null ? lastUpdated : other.getLastUpdated();
+ created = other.getCreated() == null ? created : other.getCreated();
+
+ // TODO leave this in? we might have sub-classes that have user which is not sharing related
+ user = other.getUser() == null ? user : other.getUser();
+ }
+
+ @Override
+ public void mergeSharingWith( IdentifiableObject other )
+ {
+ Validate.notNull( other );
+
+ // sharing
+ user = other.getUser() == null ? user : other.getUser();
+ publicAccess = other.getPublicAccess() == null ? publicAccess : other.getPublicAccess();
+ externalAccess = other.getExternalAccess();
+
+ userGroupAccesses.clear();
+ userGroupAccesses.addAll( other.getUserGroupAccesses() );
}
}
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/Mergeable.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/Mergeable.java 2014-03-18 08:10:10 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/Mergeable.java 2014-12-29 13:13:12 +0000
@@ -37,4 +37,6 @@
public interface Mergeable<T>
{
void mergeWith( T other );
+
+ void mergeSharingWith( T other );
}
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ImportOptions.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ImportOptions.java 2014-12-07 13:56:05 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ImportOptions.java 2014-12-29 13:13:12 +0000
@@ -59,6 +59,8 @@
private boolean skipExistingCheck;
+ private boolean sharing;
+
//--------------------------------------------------------------------------
// Constructors
//--------------------------------------------------------------------------
@@ -197,6 +199,16 @@
this.skipExistingCheck = skipExistingCheck;
}
+ public boolean isSharing()
+ {
+ return sharing;
+ }
+
+ public void setSharing( boolean sharing )
+ {
+ this.sharing = sharing;
+ }
+
@Override
public String toString()
{
=== modified file 'dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java'
--- dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java 2014-12-12 17:48:12 +0000
+++ dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java 2014-12-29 13:13:12 +0000
@@ -56,14 +56,12 @@
import org.hisp.dhis.interpretation.Interpretation;
import org.hisp.dhis.user.CurrentUserService;
import org.hisp.dhis.user.User;
-import org.hisp.dhis.user.UserGroupAccess;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
-import java.util.HashSet;
import java.util.List;
/**
@@ -304,8 +302,8 @@
if ( IdentifiableObject.class.isAssignableFrom( object.getClass() ) )
{
BaseIdentifiableObject identifiableObject = (BaseIdentifiableObject) object;
- identifiableObject.setPublicAccess( AccessStringHelper.newInstance().build() );
- identifiableObject.setUserGroupAccesses( new HashSet<UserGroupAccess>() );
+ identifiableObject.setPublicAccess( AccessStringHelper.DEFAULT );
+ identifiableObject.getUserGroupAccesses().clear();
if ( identifiableObject.getUser() == null )
{