dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #37554
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 19181: Added defaultPrivate property to Schema (used only for Dashboard for now), removed old code in Ac...
------------------------------------------------------------
revno: 19181
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2015-05-26 08:45:28 +0700
message:
Added defaultPrivate property to Schema (used only for Dashboard for now), removed old code in AclService that checked for Dashboard, now uses isDefaultPrivate instead
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/Schema.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/descriptors/DashboardSchemaDescriptor.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/acl/DefaultAclService.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/schema/Schema.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/Schema.java 2015-05-05 04:54:59 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/Schema.java 2015-05-26 01:45:28 +0000
@@ -135,6 +135,11 @@
private boolean persisted;
/**
+ * Should new instances always be default private, even if the user can create public instances.
+ */
+ private boolean defaultPrivate;
+
+ /**
* List of authorities required for doing operations on this class.
*/
private List<Authority> authorities = Lists.newArrayList();
@@ -348,6 +353,18 @@
}
@JsonProperty
+ @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
+ public boolean isDefaultPrivate()
+ {
+ return defaultPrivate;
+ }
+
+ public void setDefaultPrivate( boolean defaultPrivate )
+ {
+ this.defaultPrivate = defaultPrivate;
+ }
+
+ @JsonProperty
@JacksonXmlElementWrapper( localName = "authorities", namespace = DxfNamespaces.DXF_2_0 )
@JacksonXmlProperty( localName = "authority", namespace = DxfNamespaces.DXF_2_0 )
public List<Authority> getAuthorities()
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/descriptors/DashboardSchemaDescriptor.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/descriptors/DashboardSchemaDescriptor.java 2015-04-29 07:11:23 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/descriptors/DashboardSchemaDescriptor.java 2015-05-26 01:45:28 +0000
@@ -55,6 +55,7 @@
schema.setRelativeApiEndpoint( API_ENDPOINT );
schema.setShareable( true );
schema.setOrder( 1650 );
+ schema.setDefaultPrivate( true );
schema.getAuthorities().add( new Authority( AuthorityType.CREATE_PUBLIC, Lists.newArrayList( "F_DASHBOARD_PUBLIC_ADD" ) ) );
schema.getAuthorities().add( new Authority( AuthorityType.EXTERNALIZE, Lists.newArrayList( "F_DASHBOARD_PUBLIC_ADD" ) ) );
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/acl/DefaultAclService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/acl/DefaultAclService.java 2015-05-15 07:35:20 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/acl/DefaultAclService.java 2015-05-26 01:45:28 +0000
@@ -29,7 +29,6 @@
*/
import org.hisp.dhis.common.IdentifiableObject;
-import org.hisp.dhis.dashboard.Dashboard;
import org.hisp.dhis.period.Period;
import org.hisp.dhis.schema.AuthorityType;
import org.hisp.dhis.schema.Schema;
@@ -261,8 +260,8 @@
@Override
public <T extends IdentifiableObject> boolean defaultPublic( Class<T> klass )
{
- // TODO this is quite nasty, should probably be added to schema
- return !Dashboard.class.isAssignableFrom( klass );
+ Schema schema = schemaService.getSchema( klass );
+ return schema == null || !schema.isDefaultPrivate();
}
@Override