This is an automated email from the ASF dual-hosted git repository.

enorman pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-jackrabbit-accessmanager.git


The following commit(s) were added to refs/heads/master by this push:
     new 04ff9b2  SLING-7835 PrivilegesInfo#getEffectiveAccessControlEntries 
returns incorrect information
04ff9b2 is described below

commit 04ff9b2744fec422a388f0891b7c52c58cdb2527
Author: Eric Norman <[email protected]>
AuthorDate: Sun Aug 19 13:22:39 2018 -0700

    SLING-7835 PrivilegesInfo#getEffectiveAccessControlEntries returns
    incorrect information
---
 .../jackrabbit/accessmanager/PrivilegesInfo.java   | 38 ++++++++++++++--------
 1 file changed, 24 insertions(+), 14 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
 
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
index d0e0133..0232e2f 100644
--- 
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
+++ 
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
@@ -17,10 +17,12 @@
 package org.apache.sling.jcr.jackrabbit.accessmanager;
 
 import java.security.Principal;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.ResourceBundle;
@@ -178,13 +180,17 @@ public class PrivilegesInfo {
        private AccessControlEntry[] getDeclaredAccessControlEntries(Session 
session, String absPath) throws RepositoryException {
                AccessControlManager accessControlManager = 
AccessControlUtil.getAccessControlManager(session);
                AccessControlPolicy[] policies = 
accessControlManager.getPolicies(absPath);
-               for (AccessControlPolicy accessControlPolicy : policies) {
-                       if (accessControlPolicy instanceof AccessControlList) {
-                               AccessControlEntry[] accessControlEntries = 
((AccessControlList)accessControlPolicy).getAccessControlEntries();
-                               return accessControlEntries;
-                       }
-               }
-               return new AccessControlEntry[0];
+               
+        List<AccessControlEntry> allEntries = new 
ArrayList<AccessControlEntry>(); 
+        for (AccessControlPolicy accessControlPolicy : policies) {
+            if (accessControlPolicy instanceof AccessControlList) {
+                AccessControlEntry[] accessControlEntries = 
((AccessControlList)accessControlPolicy).getAccessControlEntries();
+                for (AccessControlEntry accessControlEntry : 
accessControlEntries) {
+                                       allEntries.add(accessControlEntry);
+                               }
+            }
+        }
+        return allEntries.toArray(new AccessControlEntry[allEntries.size()]);
        }
 
        /**
@@ -286,13 +292,17 @@ public class PrivilegesInfo {
        private AccessControlEntry[] getEffectiveAccessControlEntries(Session 
session, String absPath) throws RepositoryException {
                AccessControlManager accessControlManager = 
AccessControlUtil.getAccessControlManager(session);
                AccessControlPolicy[] policies = 
accessControlManager.getEffectivePolicies(absPath);
-               for (AccessControlPolicy accessControlPolicy : policies) {
-                       if (accessControlPolicy instanceof AccessControlList) {
-                               AccessControlEntry[] accessControlEntries = 
((AccessControlList)accessControlPolicy).getAccessControlEntries();
-                               return accessControlEntries;
-                       }
-               }
-               return new AccessControlEntry[0];
+               
+        List<AccessControlEntry> allEntries = new 
ArrayList<AccessControlEntry>(); 
+        for (AccessControlPolicy accessControlPolicy : policies) {
+            if (accessControlPolicy instanceof AccessControlList) {
+                AccessControlEntry[] accessControlEntries = 
((AccessControlList)accessControlPolicy).getAccessControlEntries();
+                for (AccessControlEntry accessControlEntry : 
accessControlEntries) {
+                                       allEntries.add(accessControlEntry);
+                               }
+            }
+        }
+        return allEntries.toArray(new AccessControlEntry[allEntries.size()]);
        }
 
        /**

Reply via email to