← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 8083: Hide/show menu base on user-role

 

------------------------------------------------------------
revno: 8083
committer: Lai <lai.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2012-09-14 15:40:13 +0700
message:
  Hide/show menu base on user-role
modified:
  dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/action/MenuAction.java
  dhis-2/dhis-web/dhis-web-light/src/main/resources/META-INF/dhis/beans.xml
  dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/menu.vm


--
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-web/dhis-web-light/src/main/java/org/hisp/dhis/light/action/MenuAction.java'
--- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/action/MenuAction.java	2012-01-22 19:37:21 +0000
+++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/action/MenuAction.java	2012-09-14 08:40:13 +0000
@@ -36,6 +36,8 @@
 import org.hisp.dhis.organisationunit.OrganisationUnitService;
 import org.hisp.dhis.period.Period;
 import org.hisp.dhis.period.PeriodService;
+import org.hisp.dhis.user.CurrentUserService;
+import org.hisp.dhis.user.User;
 
 public class MenuAction
     implements Action
@@ -71,6 +73,13 @@
     {
         this.periodService = periodService;
     }
+    
+    private CurrentUserService currentUserService;
+
+    public void setCurrentUserService( CurrentUserService currentUserService )
+    {
+        this.currentUserService = currentUserService;
+    }
 
     private I18nFormat format;
 
@@ -143,6 +152,20 @@
     {
         return complete;
     }
+    
+    public boolean trackingAuthority;
+    
+    public boolean isTrackingAuthority()
+    {
+        return trackingAuthority;
+    }
+
+    public boolean aggregateAuthority;
+    
+    public boolean isAggregateAuthority()
+    {
+        return aggregateAuthority;
+    }
 
     // -------------------------------------------------------------------------
     // Action Implementation
@@ -151,6 +174,24 @@
     @Override
     public String execute()
     {
+        User user = currentUserService.getCurrentUser();
+        
+        trackingAuthority = false;
+        
+        aggregateAuthority = false;
+
+        for (String each: user.getUserCredentials().getAllAuthorities())
+        {
+            if ( each.equals( "M_dhis-web-maintenance-patient" ) )
+            {
+                trackingAuthority = true;
+            }
+            if ( each.equals( "M_dhis-web-dataentry" ))
+            {
+                aggregateAuthority = true;
+            }
+        }
+        
         if ( complete )
         {
             organisationUnit = organisationUnitService.getOrganisationUnit( organisationUnitId );

=== modified file 'dhis-2/dhis-web/dhis-web-light/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-light/src/main/resources/META-INF/dhis/beans.xml	2012-09-08 14:18:07 +0000
+++ dhis-2/dhis-web/dhis-web-light/src/main/resources/META-INF/dhis/beans.xml	2012-09-14 08:40:13 +0000
@@ -14,6 +14,7 @@
 			ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
 		<property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
 		<property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+		<property name="currentUserService" ref="org.hisp.dhis.user.CurrentUserService" />
 	</bean>
 
 	<!-- Data entry -->

=== modified file 'dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/menu.vm'
--- dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/menu.vm	2012-09-06 18:52:44 +0000
+++ dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/menu.vm	2012-09-14 08:40:13 +0000
@@ -20,8 +20,12 @@
 
 <p>
 <ul>
-    <li><a href="selectOrganisationUnit.action">$i18n.getString( "agregate_reporting" )</a></li>
-    <li><a href="trackingMenu.action">$i18n.getString( "tracking" )</a></li>
+    #if( $aggregateAuthority == true )
+		<li><a href="selectOrganisationUnit.action">$i18n.getString( "agregate_reporting" )</a></li>
+	#end
+    #if( $trackingAuthority == true )
+		<li><a href="trackingMenu.action">$i18n.getString( "tracking" )</a></li>
+	#end	
     <li><a href="messages.action">$i18n.getString( "messages" ) #if($unreadMessageConversationCount > 0)($unreadMessageConversationCount)#end</a></li>
     <li><a href="reports.action">$i18n.getString( "reports" )</a></li>
     <li><a href="settings.action">$i18n.getString( "settings" )</a></li>
@@ -35,4 +39,4 @@
 	<li><a href="../dhis-web-commons-security/logout.action">$i18n.getString("logout")</a></li>
     <li style="padding-top: 5px;"><a href="../">$i18n.getString("desktop_version")</a></li>
 </ul>
-</div>
+</div>
\ No newline at end of file