Author: dimuthul
Date: Wed Jan 16 21:21:31 2008
New Revision: 12368

Log:

Adding mashup requirements.


Modified:
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLAccessControlAdmin.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLAuthorizer.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLUserStoreAdmin.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLUserStoreReader.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/AuthorizingRealm.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/AuthorizingRealmConfig.java

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLAccessControlAdmin.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLAccessControlAdmin.java
      (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLAccessControlAdmin.java
      Wed Jan 16 21:21:31 2008
@@ -7,6 +7,7 @@
 
 /**
  * Maniputes access control data in the user store
+ * Cannot change admin privileges through this interface
  */
 public class ACLAccessControlAdmin extends ACLAuthorizer implements 
AccessControlAdmin {
 
@@ -14,7 +15,7 @@
 
     private AccessControlAdmin admin = null;
 
-
+    
     public ACLAccessControlAdmin(Authorizer athzr, AccessControlAdmin admin,
             AuthorizingRealmConfig authConfig) {
         super(athzr, authConfig);
@@ -24,12 +25,7 @@
 
     public void authorizeUser(String userName, String resourceId, String 
action)
             throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(), 
resourceId,
-                UserManagerConstants.AUTHORIZE)) {
-
-            throw new UnauthorizedException("unAuthorized", new String[] {
-                    UserManagerConstants.AUTHORIZE, UserManagerConstants.ADD 
});
-        }
+        doAuthorizationToAuthorize();
         admin.authorizeUser(userName, resourceId, action);
 
     }
@@ -39,12 +35,7 @@
      */
     public void denyUser(String userName, String resourceId, String action)
             throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(), 
resourceId,
-                UserManagerConstants.AUTHORIZE)) {
-
-            throw new UnauthorizedException("unAuthorized", new String[] {
-                    UserManagerConstants.AUTHORIZE, UserManagerConstants.ADD 
});
-        }
+        doAuthorizationToAuthorize();
         admin.denyUser(userName, resourceId, action);
     }
 
@@ -53,12 +44,7 @@
      */
     public void authorizeRole(String roleName, String resourceId, String 
action)
             throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(), 
resourceId,
-                UserManagerConstants.AUTHORIZE)) {
-
-            throw new UnauthorizedException("unAuthorized", new String[] {
-                    UserManagerConstants.AUTHORIZE, UserManagerConstants.ADD 
});
-        }
+        doAuthorizationToAuthorize();
         admin.authorizeRole(roleName, resourceId, action);
     }
 
@@ -67,12 +53,7 @@
      */
     public void denyRole(String roleName, String resourceId, String action)
             throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(), 
resourceId,
-                UserManagerConstants.AUTHORIZE)) {
-
-            throw new UnauthorizedException("unAuthorized", new String[] {
-                    UserManagerConstants.AUTHORIZE, UserManagerConstants.ADD 
});
-        }
+        doAuthorizationToAuthorize();
         admin.denyRole(roleName, resourceId, action);
     }
 
@@ -81,12 +62,7 @@
      */
     public void clearUserAuthorization(String userName, String resourceId,
             String action) throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(), 
resourceId,
-                UserManagerConstants.AUTHORIZE)) {
-
-            throw new UnauthorizedException("unAuthorized", new String[] {
-                    UserManagerConstants.AUTHORIZE, 
UserManagerConstants.DELETE });
-        }
+        doAuthorizationToAuthorize();
         admin.clearUserAuthorization(userName, resourceId, action);
     }
 
@@ -95,12 +71,7 @@
      */
     public void clearRoleAuthorization(String roleName, String resourceId,
             String action) throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(), 
resourceId,
-                UserManagerConstants.AUTHORIZE)) {
-
-            throw new UnauthorizedException("unAuthorized", new String[] {
-                    UserManagerConstants.AUTHORIZE, 
UserManagerConstants.DELETE });
-        }
+        doAuthorizationToAuthorize();
         admin.clearRoleAuthorization(roleName, resourceId, action);
     }
 
@@ -109,12 +80,7 @@
      */
     public void clearResourceAuthorizations(String resourceId)
             throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(), 
resourceId,
-                UserManagerConstants.DELETE)) {
-
-            throw new UnauthorizedException("unAuthorized", new String[] {
-                    UserManagerConstants.AUTHORIZE, 
UserManagerConstants.DELETE });
-        }
+        doAuthorizationToAuthorize();
         admin.clearResourceAuthorizations(resourceId);
     }
 
@@ -123,12 +89,19 @@
      */
     public void copyAuthorizations(String fromResourceId, String toResourceId)
             throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(), 
toResourceId,
-                UserManagerConstants.AUTHORIZE)) {
-
+        doAuthorizationToAuthorize();
+        admin.copyAuthorizations(fromResourceId, toResourceId);
+    }
+    
+    protected void doAuthorizationToAuthorize() throws UserManagerException {
+        
+        if(config.isEnableAdminBehavior() && isAdmin){
+            //do nothing user is authenticated
+        }else if 
(!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
+                UserManagerConstants.USER_RESOURCE, 
UserManagerConstants.READ)) {
             throw new UnauthorizedException("unAuthorized", new String[] {
-                    UserManagerConstants.AUTHORIZE, UserManagerConstants.ADD 
});
+                    UserManagerConstants.USER_RESOURCE,
+                    UserManagerConstants.READ });
         }
-        admin.copyAuthorizations(fromResourceId, toResourceId);
     }
 }

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLAuthorizer.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLAuthorizer.java
      (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLAuthorizer.java
      Wed Jan 16 21:21:31 2008
@@ -8,10 +8,16 @@
     private Authorizer authorizer = null;
 
     protected AuthorizingRealmConfig config = null;
+    
+    protected boolean isAdmin = false;
 
     public ACLAuthorizer(Authorizer athzr, AuthorizingRealmConfig authConfig) {
         this.authorizer = athzr;
         config = authConfig;
+        if(config.isEnableAdminBehavior() &&
+                
ACLAdminChecker.isAdminUser(config.getAuthenticatedUserName())){
+            isAdmin =true;
+        }
     }
 
     public String[] getAllowedRolesForResource(String resourceId,

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLUserStoreAdmin.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLUserStoreAdmin.java
  (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLUserStoreAdmin.java
  Wed Jan 16 21:21:31 2008
@@ -29,7 +29,9 @@
      */
     public void addUser(String userName, Object credential)
             throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
+        if(config.isEnableAdminBehavior() && isAdmin){
+            //authorized
+        } else if 
(!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
                 UserManagerConstants.USER_RESOURCE, UserManagerConstants.ADD)) 
{
 
             throw new UnauthorizedException("unAuthorized", new String[] {
@@ -45,7 +47,9 @@
     public void updateUser(String userName, Object newCredential,
             Object oldCredential) throws UserManagerException {
         
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
+        if(config.isEnableAdminBehavior() && isAdmin){
+            //authorized
+        } else if 
(!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
                 UserManagerConstants.USER_RESOURCE, 
UserManagerConstants.EDIT)) {
 
             throw new UnauthorizedException("unAuthorized", new String[] {
@@ -57,7 +61,9 @@
 
     public void updateUser(String userName, Object newCredential)
             throws UserManagerException {
-       if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
+        if(config.isEnableAdminBehavior() && isAdmin){
+            //authorized
+        } else if 
(!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
                 UserManagerConstants.USER_RESOURCE, 
UserManagerConstants.EDIT)) {
 
             throw new UnauthorizedException("unAuthorized", new String[] {
@@ -71,7 +77,17 @@
      * Delete user from user store
      */
     public void deleteUser(String userName) throws UserManagerException {
-        if (!authorizer
+        if(config.getAuthenticatedUserName().equals(userName)){
+            return;
+        }else if(ACLAdminChecker.isAdminUser(userName)){
+            /*
+              TODO : is there a requirement to delete the user
+              if the caller is a Admin
+            */
+            return;
+        }else if(config.isEnableAdminBehavior() && isAdmin){
+            //authorized
+        } else if (!authorizer
                 .isUserAuthorized(config.getAuthenticatedUserName(),
                         UserManagerConstants.USER_RESOURCE,
                         UserManagerConstants.DELETE)) {
@@ -87,7 +103,9 @@
      */
     public void setUserProperties(String userName, Map properties)
             throws UserManagerException {
-        if(config.getAuthenticatedUserName().equals(userName) &&
+        if(config.isEnableAdminBehavior() && isAdmin){
+            //authorized
+        } else if(config.getAuthenticatedUserName().equals(userName) &&
                 config.isCurrentUserEditable()){
             //do nothing - authorized
         }else if 
(!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
@@ -104,7 +122,9 @@
      * Add role to user store
      */
     public void addRole(String roleName) throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
+        if(config.isEnableAdminBehavior() && isAdmin){
+            //authorized
+        } else if 
(!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
                 UserManagerConstants.ROLE_RESOURCE, UserManagerConstants.ADD)) 
{
 
             throw new UnauthorizedException("unAuthorized", new String[] {
@@ -118,7 +138,11 @@
      * Delete role from user store
      */
     public void deleteRole(String roleName) throws UserManagerException {
-        if (!authorizer
+        if(config.getAdminRoleName().equals(roleName)){
+            return;
+        }else if(config.isEnableAdminBehavior() && isAdmin){
+            //authorized
+        } else if (!authorizer
                 .isUserAuthorized(config.getAuthenticatedUserName(),
                         UserManagerConstants.ROLE_RESOURCE,
                         UserManagerConstants.DELETE)) {
@@ -135,7 +159,11 @@
      */
     public void setRoleProperties(String roleName, Map properties)
             throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
+        if(config.getAdminRoleName().equals(roleName)){
+            return;
+        }else if(config.isEnableAdminBehavior() && isAdmin){
+            //authorized
+        } else if 
(!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
                 UserManagerConstants.ROLE_RESOURCE, 
UserManagerConstants.EDIT)) {
 
             throw new UnauthorizedException("unAuthorized", new String[] {
@@ -150,7 +178,15 @@
      */
     public void addUserToRole(String userName, String roleName)
             throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
+        if(config.getAdminRoleName().equals(roleName)){
+            /*
+                TODO : is there a requirement to perform this action
+                if the caller is a Admin
+            */
+            return;
+        }else if(config.isEnableAdminBehavior() && isAdmin){
+            //authorized
+        } else if 
(!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
                 UserManagerConstants.ROLE_RESOURCE, UserManagerConstants.ADD)) 
{
 
             throw new UnauthorizedException("unAuthorized", new String[] {
@@ -165,7 +201,15 @@
      */
     public void removeUserFromRole(String userName, String roleName)
             throws UserManagerException {
-        if (!authorizer
+        if(config.getAdminRoleName().equals(roleName)){
+            /*
+            TODO : is there a requirement to perform this action
+            if the caller is a Admin
+             */
+            return;
+        }else if(config.isEnableAdminBehavior() && isAdmin){
+            //authorized
+        } else if (!authorizer
                 .isUserAuthorized(config.getAuthenticatedUserName(),
                         UserManagerConstants.ROLE_RESOURCE,
                         UserManagerConstants.DELETE)) {

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLUserStoreReader.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLUserStoreReader.java
 (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLUserStoreReader.java
 Wed Jan 16 21:21:31 2008
@@ -15,11 +15,19 @@
 
     protected AuthorizingRealmConfig config = null;
 
+    protected boolean isAdmin = false;
+    
     public ACLUserStoreReader(Authorizer athzr, UserStoreReader reader,
             AuthorizingRealmConfig authConfig) {
         this.authorizer = athzr;
         this.config = authConfig;
         this.usReader = reader;
+        
+        if(config.isEnableAdminBehavior() &&
+                
ACLAdminChecker.isAdminUser(config.getAuthenticatedUserName())){
+            isAdmin =true;
+        }
+        
     }
 
     public String[] getAllUserNames() throws UserManagerException {
@@ -75,7 +83,10 @@
     }
 
     protected void doAuthorizationToReadRole() throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
+        
+        if(config.isEnableAdminBehavior() && isAdmin){
+            //do nothing user is authenticated
+        }else if 
(!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
                 UserManagerConstants.ROLE_RESOURCE, 
UserManagerConstants.READ)) {
             throw new UnauthorizedException("unAuthorized", new String[] {
                     UserManagerConstants.ROLE_RESOURCE,
@@ -84,7 +95,10 @@
     }
 
     protected void doAuthorizationToReadUser() throws UserManagerException {
-        if (!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
+        
+        if(config.isEnableAdminBehavior() && isAdmin){
+            //do nothing user is authenticated
+        }else if 
(!authorizer.isUserAuthorized(config.getAuthenticatedUserName(),
                 UserManagerConstants.USER_RESOURCE, 
UserManagerConstants.READ)) {
             throw new UnauthorizedException("unAuthorized", new String[] {
                     UserManagerConstants.USER_RESOURCE,

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/AuthorizingRealm.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/AuthorizingRealm.java
   (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/AuthorizingRealm.java
   Wed Jan 16 21:21:31 2008
@@ -95,7 +95,7 @@
        
         this.authenticator = realm.getAuthenticator();
         this.authorizer = new ACLAuthorizer(authorizer, config);
-
+        
         if (realm.getAccessControlAdmin() != null) {
             this.aclAdmin = new ACLAccessControlAdmin(authorizer, realm
                     .getAccessControlAdmin(), config);
@@ -109,6 +109,11 @@
         if (realm.getUserStoreReader() != null) {
             this.usReader = new ACLUserStoreReader(authorizer, realm
                     .getUserStoreReader(), config);
+            if(config.isEnableAdminBehavior()){
+                ACLAdminChecker.loadAdminUsers(config.getAdminRoleName(), 
realm);
+            }
+            
+            
         }
 
     }

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/AuthorizingRealmConfig.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/AuthorizingRealmConfig.java
     (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/AuthorizingRealmConfig.java
     Wed Jan 16 21:21:31 2008
@@ -2,6 +2,10 @@
 
 import org.wso2.usermanager.Realm;
 
+/**
+ * @author muthulee
+ *
+ */
 public class AuthorizingRealmConfig {
 
     private Realm realm = null;
@@ -10,11 +14,12 @@
     
     private String adminRoleName = null;
     
-    
     private boolean isCurrentUserReadable = false;
 
     private boolean isCurrentUserEditable = false;
     
+    private boolean enableAdminBehavior = false;
+    
     public AuthorizingRealmConfig() {
 
     }
@@ -45,33 +50,29 @@
      * i.e. isUserAuthorized() method will return true to every 
resource/action.  
      * Admin role users can be edited/deleted and read by other admin role 
users only.
      * @param adminRoleName
-     * @param isRemovable
      */
     public void setAdminRoleName(String adminRoleName) {
         this.adminRoleName = adminRoleName;
     }
     
-    /**
-     * Current user permission on himself when editing/reading data
-     * @param readable - Let current user read his properties
-     * @param editable - Let current user edit his properties/password
-     */
-  
-
     public String getAdminRoleName() {
         return adminRoleName;
     }
 
+    /**
+     * Current user permission on himself when reading data
+     */
     public boolean isCurrentUserReadable() {
         return isCurrentUserReadable;
     }
-
+    
+    /**
+     * Current user permission on himself when editing data
+     */
     public boolean isCurrentUserEditable() {
         return isCurrentUserEditable;
     }
 
-
-
     public void setCurrentUserReadable(boolean isCurrentUserReadable) {
         this.isCurrentUserReadable = isCurrentUserReadable;
     }
@@ -80,8 +81,11 @@
         this.isCurrentUserEditable = isCurrentUserEditable;
     }
 
-    
-    
-
+    public boolean isEnableAdminBehavior() {
+        return enableAdminBehavior;
+    }
 
+    public void setEnableAdminBehavior(boolean enableAdminBehavior) {
+        this.enableAdminBehavior = enableAdminBehavior;
+    }
 }

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

Reply via email to