Author: chathura
Date: Wed Jan 30 00:57:23 2008
New Revision: 13170

Log:


Resolving some jiras related to permissions.



Modified:
   
trunk/registry/modules/core/src/main/java/org/wso2/registry/secure/SecureRegistry.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/UserDetailsAction.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/UserUtil.java
   
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/user-friendly-name.jsp
   
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/user-password-edit.jsp
   trunk/registry/modules/webapps/src/main/webapp/admin/people.jsp
   trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp
   trunk/registry/modules/webapps/src/main/webapp/admin/user.jsp

Modified: 
trunk/registry/modules/core/src/main/java/org/wso2/registry/secure/SecureRegistry.java
==============================================================================
--- 
trunk/registry/modules/core/src/main/java/org/wso2/registry/secure/SecureRegistry.java
      (original)
+++ 
trunk/registry/modules/core/src/main/java/org/wso2/registry/secure/SecureRegistry.java
      Wed Jan 30 00:57:23 2008
@@ -72,6 +72,8 @@
                     .getRealmConfiguration();
             config.setRealm(defaultRealm);
             config.setAuthenticatedUserName(userID);
+            config.setCurrentUserReadable(true);
+            config.setCurrentUserEditable(true);
             userRealm.init(config);
             this.userRealm = userRealm;
 

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
   (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
   Wed Jan 30 00:57:23 2008
@@ -37,7 +37,6 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.net.URLEncoder;
 import java.net.URLDecoder;
 
 public class ControllerServlet extends HttpServlet {
@@ -94,7 +93,7 @@
             if (command.equals("/signin")) {
 
                 //SignInAction signInAction = new SignInAction();
-                //signInAction.setUserName(request.getParameter("userName"));
+                
//signInAction.setDisplayUserName(request.getParameter("userName"));
                 //signInAction.setPassword(request.getParameter("password"));
                 //
                 //try {
@@ -1003,7 +1002,7 @@
 
     private void forwardToUserPage(HttpServletRequest request, 
HttpServletResponse response, String userName) {
         UserDetailsAction userDetailsAction = new UserDetailsAction();
-        userDetailsAction.setUserName(userName);
+        userDetailsAction.setDisplayUserName(userName);
 
         try {
             userDetailsAction.execute(request);

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/UserDetailsAction.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/UserDetailsAction.java
   (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/UserDetailsAction.java
   Wed Jan 30 00:57:23 2008
@@ -21,6 +21,8 @@
 import org.wso2.registry.secure.SecureRegistry;
 import org.wso2.usermanager.Realm;
 import org.wso2.usermanager.UserManagerException;
+import org.wso2.usermanager.UserManagerConstants;
+import org.wso2.usermanager.Authorizer;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
@@ -28,11 +30,13 @@
 
 public class UserDetailsAction extends AbstractRegistryAction {
 
-    private String userName;
+    private String displayUserName;
     private String friendlyName = "";
     private List userActivity = new ArrayList();
     private List userRoles = new ArrayList();
     private List allRoles = new ArrayList();
+    private boolean userEditable;
+    private boolean userAdmin;
 
     public String execute(HttpServletRequest request) throws RegistryException 
{
 
@@ -41,14 +45,32 @@
         SecureRegistry secureRegistry = (SecureRegistry) getRegistry();
         Realm realm = secureRegistry.getUserRealm();
 
+        if (getUserName().equals(displayUserName)) {
+            userEditable = true;
+        }
+
         try {
+
+            Authorizer auth = realm.getAuthorizer();
+            if (auth.isUserAuthorized(
+                    getUserName(), UserManagerConstants.USER_RESOURCE, 
UserManagerConstants.EDIT)) {
+                userEditable = true;
+            }
+
+            if (auth.isUserAuthorized(getUserName(),
+                            UserManagerConstants.ROLE_RESOURCE, 
UserManagerConstants.ADD) &&
+                    auth.isUserAuthorized(getUserName(),
+                            UserManagerConstants.ROLE_RESOURCE, 
UserManagerConstants.DELETE)) {
+                userAdmin = true;
+            }
+
             friendlyName = (String) realm.
-                    
getUserStoreAdmin().getUserProperties(userName).get("friendlyName");
+                    
getUserStoreAdmin().getUserProperties(displayUserName).get("friendlyName");
             if (friendlyName == null) {
                 friendlyName = "";
             }
 
-            String[] rolesArray = 
realm.getUserStoreReader().getUserRoles(userName);
+            String[] rolesArray = 
realm.getUserStoreReader().getUserRoles(displayUserName);
             for (int i = 0; i < rolesArray.length; i++) {
                 userRoles.add(rolesArray[i]);
             }
@@ -67,7 +89,7 @@
             throw new RegistryException(msg);
         }
 
-        LogEntry[] userLogs = secureRegistry.getLogs(null, -1, userName, null, 
null, true);
+        LogEntry[] userLogs = secureRegistry.getLogs(null, -1, 
displayUserName, null, null, true);
         for (int i = 0; i < userLogs.length && i < 10; i++) {
 
             LogEntry logEntry = userLogs[i];
@@ -94,12 +116,12 @@
         return SUCCESS;
     }
 
-    public String getUserName() {
-        return userName;
+    public String getDisplayUserName() {
+        return displayUserName;
     }
 
-    public void setUserName(String userName) {
-        this.userName = userName;
+    public void setDisplayUserName(String displayUserName) {
+        this.displayUserName = displayUserName;
     }
 
     public String getFriendlyName() {
@@ -129,4 +151,12 @@
     public void setAllRoles(List allRoles) {
         this.allRoles = allRoles;
     }
+
+    public boolean isUserEditable() {
+        return userEditable;
+    }
+
+    public boolean isUserAdmin() {
+        return userAdmin;
+    }
 }

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/UserUtil.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/UserUtil.java
      (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/UserUtil.java
      Wed Jan 30 00:57:23 2008
@@ -130,7 +130,7 @@
             userRealm.getUserStoreAdmin().setUserProperties(userName, 
userProperties);
 
             UserDetailsAction userDetailsAction = new UserDetailsAction();
-            userDetailsAction.setUserName(userName);
+            userDetailsAction.setDisplayUserName(userName);
             userDetailsAction.execute(request);
             request.getSession().setAttribute(UIConstants.USER_BEAN, 
userDetailsAction);
 
@@ -157,7 +157,7 @@
             //userRealm.getUserStoreAdmin().setUserProperties(userName, 
userProperties);
 
             UserDetailsAction userDetailsAction = new UserDetailsAction();
-            userDetailsAction.setUserName(userName);
+            userDetailsAction.setDisplayUserName(userName);
             userDetailsAction.execute(request);
             request.getSession().setAttribute(UIConstants.USER_BEAN, 
userDetailsAction);
 

Modified: 
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/user-friendly-name.jsp
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/user-friendly-name.jsp
    (original)
+++ 
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/user-friendly-name.jsp
    Wed Jan 30 00:57:23 2008
@@ -11,9 +11,11 @@
     <tr id="friendlyNameView">
         <th style="width:140px; height:25px;">Friendly name:</th>
         <td style="text-align:right;width:20px;" align="right">
+            <% if (userDetailsAction.isUserEditable()) { %>
             <a 
onclick="showHideCommon('friendlyNameEdit');showHideCommon('friendlyNameView');"
 title="Edit Friendly Name" href="#">
                 <img id="mainIconExpanded" border="0" align="bottom" 
src="/wso2registry/admin/images/icon-edit.gif"/>
             </a>
+            <% } %>
         </td>
         <td>
             <%=userDetailsAction.getFriendlyName()%>

Modified: 
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/user-password-edit.jsp
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/user-password-edit.jsp
    (original)
+++ 
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/user-password-edit.jsp
    Wed Jan 30 00:57:23 2008
@@ -15,9 +15,11 @@
         <tr id="passwordView">
             <th style="width:140px">Password:</th>
             <td style="text-align:right;width:20px;" align="right">
+                <% if (userDetailsAction.isUserEditable()) { %>
                 <a 
onclick="showHideCommon('passwordView');showHideCommon('passwordEdit1');showHideCommon('passwordEdit2');showHideCommon('passwordEdit3');"
 title="Edit Password" href="#">
                     <img border="0" align="bottom" 
src="/wso2registry/admin/images/icon-edit.gif"/>
                 </a>
+                <% } %>
             </td>
             <td>
                 &nbsp;&nbsp;&nbsp;- - - - - - -

Modified: trunk/registry/modules/webapps/src/main/webapp/admin/people.jsp
==============================================================================
--- trunk/registry/modules/webapps/src/main/webapp/admin/people.jsp     
(original)
+++ trunk/registry/modules/webapps/src/main/webapp/admin/people.jsp     Wed Jan 
30 00:57:23 2008
@@ -147,8 +147,8 @@
                 %>
                        
                            <tr>
-                               <td><a 
href="/wso2registry/system/people/<%=regUser%>"><%=regUser%></a></td>
-                               <td>&nbsp;<%=friendlyName%></td>
+                    <td><a 
href="/wso2registry/system/people/<%=regUser%>"><%=regUser%></a></td>
+                    <td>&nbsp;<%=friendlyName%></td>
                                
                                <td align="left">&nbsp;
                         <%

Modified: 
trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp
==============================================================================
--- trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp 
(original)
+++ trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp 
Wed Jan 30 00:57:23 2008
@@ -629,7 +629,7 @@
             Comment comment = (Comment) iComments.next();
     %>
     <div class="comments-header">
-        <strong>Commented on 
</strong><%=comment.getTime().toString()%><strong> by</strong> <a 
href="#"><%=comment.getUser()%></a>
+        <strong>Commented on 
</strong><%=comment.getTime().toString()%><strong> by</strong> <a 
href="/wso2registry/system/people/<%=comment.getUser()%>"><%=comment.getUser()%></a>
         <div class="comments-bottom">
             <%=comment.getText()%>
         </div>

Modified: trunk/registry/modules/webapps/src/main/webapp/admin/user.jsp
==============================================================================
--- trunk/registry/modules/webapps/src/main/webapp/admin/user.jsp       
(original)
+++ trunk/registry/modules/webapps/src/main/webapp/admin/user.jsp       Wed Jan 
30 00:57:23 2008
@@ -68,9 +68,11 @@
             <tr id="friendlyNameView">
                 <th style="width:140px; height:25px;">Friendly name:</th>
                 <td style="text-align:right;width:20px;" align="right">
+                    <% if (userDetailsAction.isUserEditable()) { %>
                     <a 
onclick="showHideCommon('friendlyNameEdit');showHideCommon('friendlyNameView');"
 title="Edit Friendly Name" href="#">
                         <img id="mainIconExpanded" border="0" align="bottom" 
src="/wso2registry/admin/images/icon-edit.gif"/>
                     </a>
+                    <% } %>
                 </td>
                 <td>
                     <%=userDetailsAction.getFriendlyName()%>
@@ -95,9 +97,11 @@
         <tr id="passwordView">
             <th style="width:140px">Password:</th>
             <td style="text-align:right;width:20px;" align="right">
+                <% if (userDetailsAction.isUserEditable()) { %>
                 <a 
onclick="showHideCommon('passwordView');showHideCommon('passwordEdit1');showHideCommon('passwordEdit2');showHideCommon('passwordEdit3');"
 title="Edit Password" href="#">
                     <img border="0" align="bottom" 
src="/wso2registry/admin/images/icon-edit.gif"/>
                 </a>
+                <% } %>
             </td>
             <td>
                 &nbsp;&nbsp;&nbsp;- - - - - - -
@@ -120,7 +124,8 @@
         </tr>
     </table>
     </div>
-    
+
+    <% if (userDetailsAction.isUserAdmin()) { %>
     <h3>Add roles to <%=userDetailsAction.getUserName()%></h3>
 
     <form action="/wso2registry/system/addUserToRole" method="post">
@@ -136,6 +141,8 @@
         </select>
         <input type="submit" class="button" value="Add"/>
     </form>
+    <% } %>
+    
     <h3>Available roles to <%=userDetailsAction.getUserName()%></h3>
     <table cellpadding="0" cellspacing="0" border="0" style="width:600px;" 
class="data-table">
         <tr>

_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev

Reply via email to