You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2013/07/04 10:37:28 UTC

svn commit: r1499677 - /sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java

Author: cziegeler
Date: Thu Jul  4 08:37:27 2013
New Revision: 1499677

URL: http://svn.apache.org/r1499677
Log:
SLING-2926 :  Wasted work in AbstractGetAclServlet.doGet() . Apply patch from Adrian Nistor

Modified:
    sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java

Modified: sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java?rev=1499677&r1=1499676&r2=1499677&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java (original)
+++ sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java Thu Jul  4 08:37:27 2013
@@ -5,9 +5,9 @@
  * licenses this file to You under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
@@ -79,6 +79,7 @@ public abstract class AbstractGetAclServ
 	        	for (final String level : selectors) {
 		            if("tidy".equals(level)) {
 		            	isTidy = true;
+		            	break;
 		            }
 				}
 	        }
@@ -99,11 +100,11 @@ public abstract class AbstractGetAclServ
             throw new ServletException(throwable);
         }
     }
-    
+
     @SuppressWarnings("unchecked")
-	protected JSONObject internalGetAcl(Session jcrSession, String resourcePath) 
+	protected JSONObject internalGetAcl(Session jcrSession, String resourcePath)
     			throws RepositoryException, JSONException {
-		
+
         if (jcrSession == null) {
             throw new RepositoryException("JCR Session not found");
         }
@@ -153,7 +154,7 @@ public abstract class AbstractGetAclServ
 
 			Principal principal = ace.getPrincipal();
             Map<String, Object> map = aclMap.get(principal.getName());
-			
+
             Set<Privilege> grantedSet = (Set<Privilege>) map.get("granted");
             if (grantedSet == null) {
                 grantedSet = new LinkedHashSet<Privilege>();
@@ -169,14 +170,14 @@ public abstract class AbstractGetAclServ
             if (allow) {
                 Privilege[] privileges = ace.getPrivileges();
                 for (Privilege privilege : privileges) {
-                	mergePrivilegeSets(privilege, 
+                	mergePrivilegeSets(privilege,
                 			privilegeToAncestorMap,
 							grantedSet, deniedSet);
                 }
             } else {
                 Privilege[] privileges = ace.getPrivileges();
                 for (Privilege privilege : privileges) {
-                	mergePrivilegeSets(privilege, 
+                	mergePrivilegeSets(privilege,
                 			privilegeToAncestorMap,
 							deniedSet, grantedSet);
                 }
@@ -208,7 +209,7 @@ public abstract class AbstractGetAclServ
         for ( JSONObject jsonObj : aclList) {
         	jsonAclMap.put(jsonObj.getString("principal"), jsonObj);
         }
-        
+
         return jsonAclMap;
     }
 
@@ -225,7 +226,7 @@ public abstract class AbstractGetAclServ
 			//remove duplicates from the granted set
 			List<Privilege> asList = Arrays.asList(aggregatePrivileges);
 			firstSet.removeAll(asList);
-			
+
 			//remove from the denied set
 			secondSet.removeAll(asList);
 		}
@@ -251,13 +252,13 @@ public abstract class AbstractGetAclServ
 		//4. Deal with expanding existing aggregate privileges to remove the invalid
 		//  items and add the valid ones.
 		Set<Privilege> filterSet = privilegeToAncestorMap.get(privilege);
-		if (filterSet != null) {    	
-	    	//re-pack the denied set to compensate 
+		if (filterSet != null) {
+	    	//re-pack the denied set to compensate
 	    	for (Privilege privilege2 : filterSet) {
 	    		if (secondSet.contains(privilege2)) {
 	    			secondSet.remove(privilege2);
 	    			if (privilege2.isAggregate()) {
-		    			filterAndMergePrivilegesFromAggregate(privilege2, 
+		    			filterAndMergePrivilegesFromAggregate(privilege2,
 		    					firstSet, secondSet, filterSet, privilege);
 	    			}
 	    		}
@@ -284,7 +285,7 @@ public abstract class AbstractGetAclServ
 				for (Privilege privilege2 : declaredAggregatePrivileges2) {
 					if (!ignorePrivilege.equals(privilege2)) {
 						if (privilege2.isAggregate()) {
-							filterAndMergePrivilegesFromAggregate(privilege2, 
+							filterAndMergePrivilegesFromAggregate(privilege2,
 									firstSet, secondSet, filterSet, ignorePrivilege);
 						}
 					}
@@ -292,7 +293,7 @@ public abstract class AbstractGetAclServ
 			}
 		}
 	}
-    
+
     protected abstract AccessControlEntry[] getAccessControlEntries(Session session, String absPath) throws RepositoryException;
 
 }