=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/SharingUtils.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/SharingUtils.java 2013-08-13 08:06:25 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/SharingUtils.java 2013-08-13 11:06:13 +0000 @@ -105,9 +105,9 @@ addType( PatientTabularReport.class, "patientTabularReport", null, "F_PATIENT_TABULAR_REPORT_PUBLIC_ADD", null ); addType( PatientAggregateReport.class, "patientAggregateReport", null, "F_PATIENT_TABULAR_REPORT_PUBLIC_ADD", null ); - addType( org.hisp.dhis.mapping.Map.class, "map", "F_MAP_EXTERNAL_ADD", "F_MAP_PUBLIC_ADD", null ); - addType( Chart.class, "chart", "F_CHART_PUBLIC_ADD", "F_CHART_PUBLIC_ADD", null ); - addType( ReportTable.class, "reportTable", "F_REPORTTABLE_OPEN_ADD", "F_REPORTTABLE_PUBLIC_ADD", null ); + addType( org.hisp.dhis.mapping.Map.class, "map", "F_MAP_EXTERNAL", "F_MAP_PUBLIC_ADD", null ); + addType( Chart.class, "chart", "F_CHART_EXTERNAL", "F_CHART_PUBLIC_ADD", null ); + addType( ReportTable.class, "reportTable", "F_REPORTTABLE_EXTERNAL", "F_REPORTTABLE_PUBLIC_ADD", null ); addType( PhoneNumberPattern.class, "phoneNumberPattern", null, null, null ); } @@ -327,9 +327,10 @@ */ public static boolean canExternalize( User user, T object ) { - return (object.getClass().isAssignableFrom( org.hisp.dhis.mapping.Map.class ) || - object.getClass().isAssignableFrom( ReportTable.class ) || - object.getClass().isAssignableFrom( Chart.class )) && sharingOverrideAuthority( user ); + Set authorities = user.getUserCredentials().getAllAuthorities(); + + return EXTERNAL_AUTHORITIES.get( object.getClass() ) != null && + (sharingOverrideAuthority( user ) || authorities.contains( EXTERNAL_AUTHORITIES.get( object.getClass() ) )); } private static boolean sharingOverrideAuthority( User user ) === modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/resources/META-INF/dhis/security.xml' --- dhis-2/dhis-web/dhis-web-commons/src/main/resources/META-INF/dhis/security.xml 2013-08-13 07:18:45 +0000 +++ dhis-2/dhis-web/dhis-web-commons/src/main/resources/META-INF/dhis/security.xml 2013-08-13 11:06:13 +0000 @@ -263,6 +263,9 @@ F_MAP_PUBLIC_ADD F_USERGROUP_PUBLIC_ADD F_REPORTTABLE_PUBLIC_ADD + F_MAP_EXTERNAL + F_CHART_EXTERNAL + F_REPORTTABLE_EXTERNAL F_METADATA_EXPORT F_METADATA_IMPORT === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module.properties 2013-08-12 06:23:01 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module.properties 2013-08-13 11:06:13 +0000 @@ -104,9 +104,11 @@ F_REPORT_PRIVATE_ADD=Add/Update Private Report F_REPORT_DELETE=Delete Report F_REPORTTABLE_PUBLIC_ADD=Add/Update Public Report Table +F_REPORTTABLE_EXTERNAL=Report Table External Access F_REPORTTABLE_DELETE=Delete Report Table F_REPORT_VIEW=View Report F_CHART_PUBLIC_ADD=Add/Update Public Chart +F_CHART_EXTERNAL=Chart External Access F_CHART_ADD=Add/Update Chart F_CHART_DELETE=Delete Chart F_DOCUMENT_PUBLIC_ADD=Add/Update Public Document @@ -194,6 +196,7 @@ F_RELATIONSHIP_DELETE=Delete Relationship F_GIS_ADMIN=Administrate GIS F_MAP_PUBLIC_ADD=Add Public Map +F_MAP_EXTERNAL=Map External Access F_DATAMART_ADMIN=Administrate data mart F_SCHEDULING_ADMIN=Scheduling Administration F_SQLVIEW_ADD=Add/Update Sql View