← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 9568: dataset sharing, wip

 

------------------------------------------------------------
revno: 9568
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2013-01-21 15:03:42 +0100
message:
  dataset sharing, wip
added:
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/assign-denied.png
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/edit_compulsory_data_elements-denied.png
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/edit_layout-denied.png
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/i18n-denied.png
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/SharingUtils.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java
  dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataset/hibernate/DataSet.hbm.xml
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/struts.xml
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/dataSetList.vm
  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_es_ES.properties
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_fr_FR.properties
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_my_MM.properties
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_pt_PT.properties
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_vi_VN.properties
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_zh_CN.properties


--
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/SharingUtils.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/SharingUtils.java	2013-01-21 09:58:55 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/SharingUtils.java	2013-01-21 14:03:42 +0000
@@ -27,6 +27,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+import org.hisp.dhis.dataset.DataSet;
 import org.hisp.dhis.document.Document;
 import org.hisp.dhis.report.Report;
 import org.hisp.dhis.reporttable.ReportTable;
@@ -63,6 +64,10 @@
         SUPPORTED_TYPES.put( "reportTable", ReportTable.class );
         PUBLIC_AUTHORITIES.put( ReportTable.class, "F_REPORTTABLE_PUBLIC_ADD" );
         PRIVATE_AUTHORITIES.put( ReportTable.class, "F_REPORTTABLE_PRIVATE_ADD" );
+
+        SUPPORTED_TYPES.put( "dataSet", DataSet.class );
+        PUBLIC_AUTHORITIES.put( DataSet.class, "F_DATASET_PUBLIC_ADD" );
+        PRIVATE_AUTHORITIES.put( DataSet.class, "F_DATASET_PRIVATE_ADD" );
     }
 
     public static boolean isSupported( String type )

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java	2013-01-17 15:00:33 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java	2013-01-21 14:03:42 +0000
@@ -483,6 +483,7 @@
         executeSql( "UPDATE userroleauthorities SET authority='F_DOCUMENT_PUBLIC_ADD' WHERE authority='F_DOCUMENT_ADD'" );
         executeSql( "UPDATE userroleauthorities SET authority='F_REPORT_PUBLIC_ADD' WHERE authority='F_REPORT_ADD'" );
         executeSql( "UPDATE userroleauthorities SET authority='F_REPORTTABLE_PUBLIC_ADD' WHERE authority='F_REPORTTABLE_ADD'" );
+        executeSql( "UPDATE userroleauthorities SET authority='F_DATASET_PUBLIC_ADD' WHERE authority='F_DATASET_ADD'" );
 
         log.info( "Tables updated" );
     }

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataset/hibernate/DataSet.hbm.xml'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataset/hibernate/DataSet.hbm.xml	2012-12-04 15:27:28 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataset/hibernate/DataSet.hbm.xml	2013-01-21 14:03:42 +0000
@@ -1,9 +1,9 @@
 <?xml version="1.0"?>
 <!DOCTYPE hibernate-mapping PUBLIC
-    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
-    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd";
-    [<!ENTITY identifiableProperties SYSTEM "classpath://org/hisp/dhis/common/identifiableProperties.hbm">]
-    >
+  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+  "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd";
+  [<!ENTITY identifiableProperties SYSTEM "classpath://org/hisp/dhis/common/identifiableProperties.hbm">]
+  >
 
 <hibernate-mapping>
   <class name="org.hisp.dhis.dataset.DataSet" table="dataset">
@@ -20,32 +20,32 @@
     <property name="description" type="text" />
 
     <many-to-one name="periodType" lazy="false" class="org.hisp.dhis.period.PeriodType" column="periodtypeid"
-        not-null="true" foreign-key="fk_dataset_periodtypeid" />
+      not-null="true" foreign-key="fk_dataset_periodtypeid" />
 
     <set name="dataElements" table="datasetmembers">
       <cache usage="read-write" />
       <key column="datasetid" foreign-key="fk_datasetmembers_datasetid" />
       <many-to-many class="org.hisp.dhis.dataelement.DataElement" column="dataelementid"
-          foreign-key="fk_dataset_dataelementid" />
+        foreign-key="fk_dataset_dataelementid" />
     </set>
 
     <set name="indicators" table="datasetindicators">
       <key column="datasetid" foreign-key="fk_datasetindicators_datasetid" />
       <many-to-many class="org.hisp.dhis.indicator.Indicator" column="indicatorid"
-          foreign-key="fk_dataset_indicatorid" />
+        foreign-key="fk_dataset_indicatorid" />
     </set>
 
     <set name="compulsoryDataElementOperands" table="datasetoperands" cascade="all-delete-orphan">
       <key column="datasetid" foreign-key="fk_datasetoperands_datasetid" />
       <many-to-many class="org.hisp.dhis.dataelement.DataElementOperand" column="dataelementoperandid"
-          foreign-key="fk_dataset_dataelementoperandid" />
+        foreign-key="fk_dataset_dataelementoperandid" />
     </set>
 
     <set name="sources" table="datasetsource">
       <cache usage="read-write" />
       <key column="datasetid" foreign-key="fk_datasetsource_datasetid" />
       <many-to-many column="sourceid" class="org.hisp.dhis.organisationunit.OrganisationUnit"
-          foreign-key="fk_dataset_organisationunit" />
+        foreign-key="fk_dataset_organisationunit" />
     </set>
 
     <set name="sections" order-by="sortorder" inverse="true">
@@ -57,30 +57,41 @@
     <property name="sortOrder" />
 
     <many-to-one name="dataEntryForm" class="org.hisp.dhis.dataentryform.DataEntryForm"
-        foreign-key="fk_dataset_dataentryform" cascade="all" />
+      foreign-key="fk_dataset_dataentryform" cascade="all" />
 
     <property name="mobile" not-null="true" />
-	
+
     <property name="version" />
 
     <property name="expiryDays" />
-	
-	<property name="skipAggregation" />
-	
-	<many-to-one name="notificationRecipients" class="org.hisp.dhis.user.UserGroup"
-	   foreign-key="fk_dataset_notificationrecipients" />
-	   
-	<property name="notifyCompletingUser" />
-
-	<!-- Form properties -->
-
-	<property name="allowFuturePeriods" />
-
-	<property name="fieldCombinationRequired" />
-	
-  <property name="validCompleteOnly" />
-
-  <property name="skipOffline" />
+
+    <property name="skipAggregation" />
+
+    <many-to-one name="notificationRecipients" class="org.hisp.dhis.user.UserGroup"
+      foreign-key="fk_dataset_notificationrecipients" />
+
+    <property name="notifyCompletingUser" />
+
+    <!-- Form properties -->
+
+    <property name="allowFuturePeriods" />
+
+    <property name="fieldCombinationRequired" />
+
+    <property name="validCompleteOnly" />
+
+    <property name="skipOffline" />
+
+    <!-- Access properties -->
+    <many-to-one name="user" class="org.hisp.dhis.user.User" column="userid" foreign-key="fk_dataset_userid" />
+
+    <property name="publicAccess" length="8" />
+
+    <set name="userGroupAccesses" table="datasetusergroupaccesses">
+      <cache usage="read-write" />
+      <key column="datasetid" />
+      <many-to-many class="org.hisp.dhis.user.UserGroupAccess" column="usergroupaccessid" unique="true" />
+    </set>
 
   </class>
 </hibernate-mapping>

=== added file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/assign-denied.png'
Binary files dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/assign-denied.png	1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/assign-denied.png	2013-01-21 14:03:42 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/edit_compulsory_data_elements-denied.png'
Binary files dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/edit_compulsory_data_elements-denied.png	1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/edit_compulsory_data_elements-denied.png	2013-01-21 14:03:42 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/edit_layout-denied.png'
Binary files dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/edit_layout-denied.png	1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/edit_layout-denied.png	2013-01-21 14:03:42 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/i18n-denied.png'
Binary files dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/i18n-denied.png	1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/i18n-denied.png	2013-01-21 14:03:42 +0000 differ
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml	2012-10-31 06:45:06 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml	2013-01-21 14:03:42 +0000
@@ -85,7 +85,7 @@
       <param name="page">/dhis-web-maintenance-dataadmin/viewStatistics.vm</param>
       <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
       <param name="javascripts">javascript/statistics.js</param>
-	  <param name="requiredAuthorities">F_PERFORM_MAINTENANCE</param>
+	  <param name="requiredAuthorities">F_PERFORM_MAINTENANCE</param>
     </action>
 
     <action name="getStatistics" class="org.hisp.dhis.dataadmin.action.statistics.GetStatisticsAction">
@@ -407,13 +407,13 @@
       <result name="success" type="velocity">/main.vm</result>
       <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
       <param name="page">/dhis-web-maintenance-dataadmin/addLockExceptionForm.vm</param>
-      <param name="requiredAuthorities">F_DATASET_ADD</param>
+      <param name="anyAuthorities">F_DATASET_PUBLIC_ADD, F_DATASET_PRIVATE_ADD</param>
     </action>
 
     <action name="addLockException" class="org.hisp.dhis.dataadmin.action.lockexception.AddLockExceptionAction">
       <result name="success" type="redirect">lockException.action</result>
       <result name="error" type="redirect">index.action</result>
-      <param name="requiredAuthorities">F_DATASET_ADD</param>
+      <param name="anyAuthorities">F_DATASET_PUBLIC_ADD, F_DATASET_PRIVATE_ADD</param>
     </action>
 
     <action name="getDataSets" class="org.hisp.dhis.dataadmin.action.lockexception.GetDataSetsAction">

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/struts.xml	2012-11-20 14:43:33 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/struts.xml	2013-01-21 14:03:42 +0000
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts PUBLIC
-"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
-"http://struts.apache.org/dtds/struts-2.0.dtd";>
+  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
+  "http://struts.apache.org/dtds/struts-2.0.dtd";>
 <struts>
 
   <include file="dhis-web-commons.xml" />
@@ -14,8 +14,8 @@
       <param name="menu">/dhis-web-maintenance-dataset/menu.vm</param>
     </action>
 
-	<!-- Dataset -->
-	  
+    <!-- Dataset -->
+
     <action name="dataSet" class="org.hisp.dhis.dataset.action.DataSetListAction">
       <result name="success" type="velocity">/main.vm</result>
       <param name="page">/dhis-web-maintenance-dataset/dataSetList.vm</param>
@@ -23,7 +23,7 @@
       <param name="javascripts">javascript/dataSet.js</param>
     </action>
 
-	<!-- Section -->
+    <!-- Section -->
 
     <action name="section" class="org.hisp.dhis.dataset.action.section.SectionListAction">
       <result name="success" type="velocity">/main.vm</result>
@@ -53,7 +53,8 @@
 
     <action name="getSection" class="org.hisp.dhis.dataset.action.section.GetSectionAction">
       <result name="success" type="velocity-json">
-		/dhis-web-commons/ajax/jsonSection.vm</result>
+        /dhis-web-commons/ajax/jsonSection.vm
+      </result>
       <param name="onExceptionReturn">plainTextError</param>
     </action>
 
@@ -100,7 +101,7 @@
       <result name="success" type="redirect">section.action</result>
     </action>
 
-	<!-- Sort order -->
+    <!-- Sort order -->
 
     <action name="showSortDataSetForm" class="org.hisp.dhis.dataset.action.GetDataSetListSortOrderAction">
       <result name="success" type="velocity">/main.vm</result>
@@ -111,16 +112,16 @@
       <result name="success" type="redirect">dataSet.action</result>
     </action>
 
-	<!-- Show add DataSet form -->
+    <!-- Show add DataSet form -->
 
     <action name="addDataSetForm" class="org.hisp.dhis.dataset.action.EditDataSetFormAction">
       <result name="success" type="velocity">/main.vm</result>
       <param name="page">/dhis-web-maintenance-dataset/addDataSet.vm</param>
       <param name="javascripts">javascript/shortName.js,javascript/dataSet.js</param>
-      <param name="requiredAuthorities">F_DATASET_ADD</param>
+      <param name="anyAuthorities">F_DATASET_PUBLIC_ADD, F_DATASET_PRIVATE_ADD</param>
     </action>
 
-	<!-- Show edit DataSet form -->
+    <!-- Show edit DataSet form -->
 
     <action name="editDataSetForm" class="org.hisp.dhis.dataset.action.EditDataSetFormAction">
       <result name="success" type="velocity">/main.vm</result>
@@ -129,7 +130,7 @@
       <param name="requiredAuthorities">F_DATASET_UPDATE</param>
     </action>
 
-	<!-- Validation, add, update, and delete -->
+    <!-- Validation, add, update, and delete -->
 
     <action name="validateDataSet" class="org.hisp.dhis.dataset.action.ValidateDataSetAction">
       <result name="success" type="velocity-json">../dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
@@ -139,7 +140,7 @@
 
     <action name="addDataSet" class="org.hisp.dhis.dataset.action.AddDataSetAction">
       <result name="success" type="redirect">dataSet.action</result>
-      <param name="requiredAuthorities">F_DATASET_ADD</param>
+      <param name="anyAuthorities">F_DATASET_PUBLIC_ADD, F_DATASET_PRIVATE_ADD</param>
     </action>
 
     <action name="updateDataSet" class="org.hisp.dhis.dataset.action.UpdateDataSetAction">
@@ -154,7 +155,7 @@
       <param name="requiredAuthorities">F_DATASET_DELETE</param>
     </action>
 
-	<!-- DataSet association -->
+    <!-- DataSet association -->
 
     <action name="defineDataSetAssociationsForm" class="org.hisp.dhis.dataset.action.GetDataSetAction">
       <result name="success" type="velocity">/main.vm</result>
@@ -167,25 +168,26 @@
       <param name="requiredAuthorities">F_DATASET_UPDATE</param>
     </action>
 
-	<!-- DataEntryForm -->
+    <!-- DataEntryForm -->
 
     <action name="viewDataEntryForm" class="org.hisp.dhis.dataset.action.dataentryform.ViewDataEntryFormAction">
       <result name="success" type="velocity">/main.vm</result>
       <param name="page">/dhis-web-maintenance-dataset/viewDataEntryForm.vm</param>
       <param name="javascripts">../dhis-web-commons/ckeditor/ckeditor.js,
         ../dhis-web-commons/ckeditor/adapters/jquery.js,
-        javascript/dataEntryForm.js</param>
-      <param name="requiredAuthorities">F_DATASET_ADD</param>
+        javascript/dataEntryForm.js
+      </param>
+      <param name="anyAuthorities">F_DATASET_PUBLIC_ADD, F_DATASET_PRIVATE_ADD</param>
     </action>
 
     <action name="saveDataEntryForm" class="org.hisp.dhis.dataset.action.dataentryform.SaveDataEntryFormAction">
       <result name="success" type="redirect">dataSet.action</result>
-      <param name="requiredAuthorities">F_DATASET_ADD</param>
+      <param name="anyAuthorities">F_DATASET_PUBLIC_ADD, F_DATASET_PRIVATE_ADD</param>
     </action>
 
     <action name="autoSaveDataEntryForm" class="org.hisp.dhis.dataset.action.dataentryform.AutoSaveDataEntryFormAction">
       <result name="success" type="velocity-json">../dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
-      <param name="requiredAuthorities">F_DATASET_ADD</param>
+      <param name="anyAuthorities">F_DATASET_PUBLIC_ADD, F_DATASET_PRIVATE_ADD</param>
     </action>
 
     <action name="validateDataEntryForm" class="org.hisp.dhis.dataset.action.dataentryform.ValidateDataEntryFormAction">
@@ -202,47 +204,47 @@
     <action name="getSelectedDataElements" class="org.hisp.dhis.dataset.action.dataentryform.GetSelectedDataElementsAction">
       <result name="success" type="velocity-xml">/dhis-web-maintenance-dataset/responseSelDataElementList.vm</result>
     </action>
-    
+
     <action name="setAutoSaveSetting" class="org.hisp.dhis.dataset.action.dataentryform.SetAutoSaveSettingAction">
       <result name="success" type="velocity-json">../dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
     </action>
 
-	<!-- Compulsory data elements -->
+    <!-- Compulsory data elements -->
 
     <action name="displayCompulsoryDataElementsForm" class="org.hisp.dhis.dataset.action.compulsory.GetCompulsoryDataElementsAction">
       <result name="success" type="velocity">/main.vm</result>
       <param name="page">/dhis-web-maintenance-dataset/compulsoryDataElementsForm.vm</param>
-      <param name="requiredAuthorities">F_DATASET_ADD</param>
+      <param name="anyAuthorities">F_DATASET_PUBLIC_ADD, F_DATASET_PRIVATE_ADD</param>
     </action>
 
     <action name="saveCompulsoryDataElements" class="org.hisp.dhis.dataset.action.compulsory.SaveCompulsoryDataElementsAction">
       <result name="success" type="redirect">dataSet.action</result>
-      <param name="requiredAuthorities">F_DATASET_ADD</param>
+      <param name="anyAuthorities">F_DATASET_PUBLIC_ADD, F_DATASET_PRIVATE_ADD</param>
     </action>
 
-	<!-- Dataset Editor -->
+    <!-- Dataset Editor -->
 
     <action name="displayEditorForm" class="org.hisp.dhis.dataset.action.NoAction">
       <result name="success" type="velocity">/main.vm</result>
       <param name="page">/dhis-web-maintenance-dataset/viewEditorForm.vm</param>
       <param name="menu">/dhis-web-maintenance-dataset/menu.vm</param>
       <param name="javascripts">../dhis-web-commons/oust/oust.js,javascript/editor.js</param>
-      <param name="requiredAuthorities">F_DATASET_ADD</param>
+      <param name="anyAuthorities">F_DATASET_PUBLIC_ADD, F_DATASET_PRIVATE_ADD</param>
     </action>
 
     <action name="showedAssociationsEditor" class="org.hisp.dhis.dataset.action.editor.ShowedAssociationsEditorAction">
       <result name="success" type="velocity">/dhis-web-maintenance-dataset/htmlGrid.vm</result>
-      <param name="requiredAuthorities">F_DATASET_ADD</param>
+      <param name="anyAuthorities">F_DATASET_PUBLIC_ADD, F_DATASET_PRIVATE_ADD</param>
     </action>
 
     <action name="definedAssociationEditor" class="org.hisp.dhis.dataset.action.editor.DefinedAssociationEditorAction">
       <result name="success" type="velocity">/dhis-web-maintenance-dataset/loadIcon.vm</result>
-      <param name="requiredAuthorities">F_DATASET_ADD</param>
+      <param name="anyAuthorities">F_DATASET_PUBLIC_ADD, F_DATASET_PRIVATE_ADD</param>
     </action>
 
     <action name="definedMultiAssociationsEditor" class="org.hisp.dhis.dataset.action.editor.DefinedMultiAssociationsEditorAction">
       <result name="success" type="velocity">/dhis-web-maintenance-dataset/loadIcons.vm</result>
-      <param name="requiredAuthorities">F_DATASET_ADD</param>
+      <param name="anyAuthorities">F_DATASET_PUBLIC_ADD, F_DATASET_PRIVATE_ADD</param>
     </action>
 
   </package>

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/dataSetList.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/dataSetList.vm	2012-10-18 13:27:17 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/dataSetList.vm	2013-01-21 14:03:42 +0000
@@ -1,3 +1,6 @@
+
+#sharingDialog()
+
 <script type="text/javascript">
 	jQuery(document).ready(function(){	
 		tableSorter( 'listTable' );
@@ -28,7 +31,7 @@
 		</table>
       <table class="listTable" id="listTable">
           <col/>          
-          <col width="200"/>     
+          <col width="230"/>
           <thead>
           <tr>
             <th>$i18n.getString( "name" )</th>
@@ -40,19 +43,49 @@
               <tr id="tr${dataSet.id}">
                 <td onclick="showDataSetDetails( $dataSet.id )">$encoder.htmlEncode( $dataSet.displayName )</td>
                 <td style="text-align:right">
+                  #if( $security.canUpdate( $dataSet ) )
                   <a href="defineDataSetAssociationsForm.action?dataSetId=$dataSet.id" title="$i18n.getString( 'define_associations' )"><img src="../images/assign.png" alt="$i18n.getString( 'define_associations' )"/></a>
-              
+                  #else
+                  <img src="../images/assign-denied.png">
+                  #end
+
+                  #if ( $security.canManage( $dataSet ) )
+                  <a href="javascript:showSharingDialog('dataSet', '$dataSet.uid');"><img src="../images/relationship.png" alt="$i18n.getString( 'sharing_settings' )"></a>
+                  #else
+                  <img src="../images/relationship-denied.png">
+                  #end
+
+                  #if( $security.canUpdate( $dataSet ) )
                   <a href="editDataSetForm.action?dataSetId=$dataSet.id" title="$i18n.getString( 'edit' )"><img src="../images/edit.png" alt="$i18n.getString( 'edit' )"/></a>
-
-                   <a href="javascript:translate( 'DataSet', '$dataSet.id' )" title="$i18n.getString( 'translation_translate' )"><img src="../images/i18n.png" alt="$i18n.getString( 'translation_translate' )"/></a>
-               
+                  #else
+                  <img src="../images/edit-denied.png">
+                  #end
+
+                  #if( $security.canUpdate( $dataSet ) )
+                  <a href="javascript:translate( 'DataSet', '$dataSet.id' )" title="$i18n.getString( 'translation_translate' )"><img src="../images/i18n.png" alt="$i18n.getString( 'translation_translate' )"/></a>
+                  #else
+                  <img src="../images/i18n-denied.png">
+                  #end
+
+                  #if( $security.canUpdate( $dataSet ) )
                   <a href="javascript:viewDataEntryForm( '$dataSet.id' )" title="$i18n.getString( 'design_data_entry_form' )"><img src="../images/edit_layout.png" alt="$i18n.getString( 'design_data_entry_form' )"/></a>
-               
+                  #else
+                  <img src="../images/edit_layout-denied.png">
+                  #end
+
+                  #if( $security.canWrite( $dataSet ) )
                   <a href="javascript:window.location.href='displayCompulsoryDataElementsForm.action?id=${dataSet.id}'" title="$i18n.getString( 'edit_compulsory_data_elements' )"><img src="../images/edit_compulsory_data_elements.png" alt="$i18n.getString( 'edit_compulsory_data_elements' )"/></a>
-               
+                  #else
+                  <img src="../images/edit_compulsory_data_elements-denied.png">
+                  #end
+
+                  #if( $security.canDelete( $dataSet ) )
                   <a href="javascript:removeDataSet( '$dataSet.id', '$encoder.jsEncode( $dataSet.displayName )' )" title="$i18n.getString( 'remove' )"><img src="../images/delete.png" alt="$i18n.getString( 'remove' )"/></a>
-               
-                  <a href="javascript:showDataSetDetails( $dataSet.id )" title="$i18n.getString( 'show_details' )"><img src="../images/information.png" alt="$i18n.getString( 'show_details' )"/></a>
+                  #else
+                  <img src="../images/delete-denied.png">
+                  #end
+
+                  <a href="javascript:showDataSetDetails( '$dataSet.id' )" title="$i18n.getString( 'show_details' )"><img src="../images/information.png" alt="$i18n.getString( 'show_details' )"/></a>
                 </td>
               </tr>
             #end

=== 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-01-17 15:00:33 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module.properties	2013-01-21 14:03:42 +0000
@@ -57,7 +57,8 @@
 F_DATAELEMENT_MINMAX_ADD=Add Min/max rule
 F_DATAELEMENT_MINMAX_DELETE=Delete Min/max rule
 F_DATAELEMENT_MINMAX_UPDATE=Update Min/max rule
-F_DATASET_ADD=Add Data Set
+F_DATASET_PUBLIC_ADD=Add Public Data Set
+F_DATASET_PRIVATE_ADD=Add Private Data Set
 F_DATASET_DELETE=Delete Data Set
 F_DATASET_ORDER_CHANGE=Change order in Data Set
 F_DATASET_UPDATE=Update Data Set

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_es_ES.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_es_ES.properties	2013-01-17 15:00:33 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_es_ES.properties	2013-01-21 14:03:42 +0000
@@ -105,7 +105,7 @@
 F_DATAELEMENT_UPDATE=Actualizar Elemento de Dato
 F_REPORT_VIEW=Ver Informe
 specify_organisationunit=Especificar, por favor, una Unidad organizativa
-F_DATASET_ADD=A\u00f1adir Conjunto de Datos
+F_DATASET_PUBLIC_ADD=A\u00f1adir Conjunto de Datos
 M_dhis-web-reporting=Ver m\u00f3dulo de Informes
 M_dhis-web-dataentry-national=Ver listado lineal de moduo de entrada de datos
 save=Guardar

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_fr_FR.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_fr_FR.properties	2013-01-17 15:00:33 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_fr_FR.properties	2013-01-21 14:03:42 +0000
@@ -53,7 +53,7 @@
 F_DATAELEMENT_MINMAX_ADD=Ajouter r\u00e8gle de min / max
 F_DATAELEMENT_MINMAX_DELETE=Supprimer r\u00e8gle de min / max
 F_DATAELEMENT_MINMAX_UPDATE=Modifier r\u00e8gle de mini / maxi
-F_DATASET_ADD=Ajouter ensemble de donn\u00e9es
+F_DATASET_PUBLIC_ADD=Ajouter ensemble de donn\u00e9es
 F_DATASET_DELETE=Supprimer ensemble de donn\u00e9es
 F_DATASET_ORDER_CHANGE=Changer l'ordre dans l'ensemble de donn\u00e9es
 F_DATASET_UPDATE=Modifier ensemble de donn\u00e9es

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_my_MM.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_my_MM.properties	2013-01-17 15:00:33 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_my_MM.properties	2013-01-21 14:03:42 +0000
@@ -53,7 +53,7 @@
 F_DATAELEMENT_MINMAX_ADD=\u1021\u1014\u100a\u103a\u1038\u1006\u102f\u1036\u1038/\u1021\u1019\u103b\u102c\u1038\u1006\u102f\u1036\u1038 \u1005\u100a\u103a\u1038\u1019\u103b\u1009\u103a\u1038\u1000\u102d\u102f \u1015\u1031\u102b\u1004\u103a\u1038\u1011\u100a\u1037\u103a\u101e\u100a\u103a\u104b
 F_DATAELEMENT_MINMAX_DELETE=\u1021\u1014\u100a\u103a\u1038\u1006\u102f\u1036\u1038/\u1021\u1019\u103b\u102c\u1038\u1006\u102f\u1036\u1038 \u1005\u100a\u103a\u1038\u1019\u103b\u1009\u103a\u1038\u1000\u102d\u102f \u1016\u103b\u1000\u103a\u101e\u100a\u103a\u104b
 F_DATAELEMENT_MINMAX_UPDATE=\u1021\u1014\u100a\u103a\u1038\u1006\u102f\u1036\u1038/\u1021\u1019\u103b\u102c\u1038\u1006\u102f\u1036\u1038 \u1005\u100a\u103a\u1038\u1019\u103b\u1009\u103a\u1038\u1000\u102d\u102f \u1015\u103c\u1004\u103a\u1006\u1004\u103a\u1019\u103d\u1019\u103a\u1038\u1019\u1036\u101e\u100a\u103a\u104b
-F_DATASET_ADD=Data \u1021\u1005\u102f\u1000\u102d\u102f \u1015\u1031\u102b\u1004\u103a\u1038\u1011\u100a\u1037\u103a\u101e\u100a\u103a\u104b
+F_DATASET_PUBLIC_ADD=Data \u1021\u1005\u102f\u1000\u102d\u102f \u1015\u1031\u102b\u1004\u103a\u1038\u1011\u100a\u1037\u103a\u101e\u100a\u103a\u104b
 F_DATASET_DELETE=Data \u1021\u1005\u102f\u1000\u102d\u102f \u1016\u103b\u1000\u103a\u101e\u100a\u103a\u104b
 F_DATASET_ORDER_CHANGE=Change order in Data Set
 F_DATASET_UPDATE=Data \u1021\u1005\u102f\u1000\u102d\u102f \u1015\u103c\u1004\u103a\u1006\u1004\u103a\u1019\u103d\u1019\u103a\u1038\u1019\u1036\u101e\u100a\u103a\u104b

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_pt_PT.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_pt_PT.properties	2013-01-17 15:00:33 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_pt_PT.properties	2013-01-21 14:03:42 +0000
@@ -53,7 +53,7 @@
 F_DATAELEMENT_MINMAX_ADD=Adicionar regra para min/max
 F_DATAELEMENT_MINMAX_DELETE=Apagar regra min/max
 F_DATAELEMENT_MINMAX_UPDATE=Actualizar regra min/max
-F_DATASET_ADD=Adicionar SetDados
+F_DATASET_PUBLIC_ADD=Adicionar SetDados
 F_DATASET_DELETE=Apagar SetDados
 F_DATASET_ORDER_CHANGE=Mudar ordem no SetDados
 F_DATASET_UPDATE=Actualizar SetDados

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_vi_VN.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_vi_VN.properties	2013-01-17 15:00:33 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_vi_VN.properties	2013-01-21 14:03:42 +0000
@@ -182,7 +182,7 @@
 F_COPY_EXCEL_ITEM_ADMINISTRATION=Sao ch\u00e9p ph\u1ea7n t\u1eed Excel
 F_PATIENTATTRIBUTE_DELETE=X\u00f3a thu\u1ed9c t\u00ednh c\u00e1 th\u1ec3
 F_PROGRAMSTAGE_ADD=Th\u00eam giai \u0111o\u1ea1n ch\u01b0\u01a1ng tr\u00ecnh
-F_DATASET_ADD=Th\u00eam t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
+F_DATASET_PUBLIC_ADD=Th\u00eam t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
 M_dhis-web-reporting=Xem ch\u1ee9c n\u0103ng B\u00e1o c\u00e1o chung
 M_dhis-web-dataentry-national=Xem ch\u1ee9c n\u0103ng Nh\u1eadp D\u1eef Li\u1ec7u (theo li\u1ec7t k\u00ea)
 confirm_delete=X\u00e1c nh\u1eadn x\u00f3a

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_zh_CN.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_zh_CN.properties	2013-01-17 15:00:33 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_zh_CN.properties	2013-01-21 14:03:42 +0000
@@ -8,7 +8,7 @@
 F_SECTION_UPDATE=\u66F4\u65B0\u5206\u6BB5
 F_PATIENT_AGGREGATION=\u53D7\u76CA\u4EBA\u6C47\u603B
 saving_role_failed=\u4FDD\u5B58\u89D2\u8272\u5931\u8D25
-F_DATASET_ADD=\u6DFB\u52A0\u6570\u636E\u96C6
+F_DATASET_PUBLIC_ADD=\u6DFB\u52A0\u6570\u636E\u96C6
 filter_by_username=\u8FC7\u6EE4\u5668\u7528\u6237
 F_USER_UPDATE=\u66F4\u65B0\u7528\u6237
 F_USERROLE_LIST=\u7528\u6237\u89D2\u8272\u5217\u8868