Author: tdraier
Date: Tue Jul 31 18:40:23 2007
New Revision: 18081

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18081&repname=
=3Djahia
Log:
fixed acl inheritance break in linked copies ( due to acl aggregation )

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/model/Ja=
hiaAcl.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/acl/Jahia=
LinkedContentACL.java

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/mo=
del/JahiaAcl.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/hibernate/model/JahiaAcl.java&rev=3D18081&r=
epname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/model/Ja=
hiaAcl.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/model/Ja=
hiaAcl.java Tue Jul 31 18:40:23 2007
@@ -385,13 +385,13 @@
         }
         checkCache();
 //        else return true;
-        String key =3D "" + user.getUserKey() + "_" + permission + getClas=
s().getName() + id + objectSiteID+siteAdminsHaveAllRights;
+        String key =3D "" + user.getUserKey() + "_" + permission + getKey(=
) + objectSiteID+siteAdminsHaveAllRights;
         Boolean v =3D (Boolean) permissions.get(key);
         if (v !=3D null) {
             //make sure the user-specific ACLs are declared in the current=
 fragment/template,
             //even if the permission response is already cached
             if (Jahia.getSettings().isEsiCacheActivated()) {
-                Map[] recursedMaps =3D (Map[]) permissions.get("recursedTa=
bles"+getClass().getName() + id);
+                Map[] recursedMaps =3D (Map[]) permissions.get("recursedTa=
bles"+getKey());
                 if (recursedMaps!=3Dnull && recursedMaps[0].size()>0) {
                     ServicesRegistry.getInstance().getEsiService().addAclU=
serNamesToCurrentJesiObject(recursedMaps[0]);
                 }
@@ -842,13 +842,11 @@
     /**
      * Find permissions recursively.
      *
-     * @param userTable
-     * @param groupTable
      */
     public Map[] getRecursedPermissions(ParentACLFinder parentACLFinder, A=
CLResourceInterface aclResource) {
         checkCache();
 =

-        Map[] recursedMaps =3D (Map[]) permissions.get("recursedTables"+ge=
tClass().getName() + id);
+        Map[] recursedMaps =3D (Map[]) permissions.get("recursedTables"+ g=
etKey());
         if (recursedMaps =3D=3D null) {
             recursedMaps =3D new Map[] { new HashMap(userEntries), new Has=
hMap(groupEntries) };
 =

@@ -871,7 +869,7 @@
                 buildPermissions(recursedMaps[1], parents[1]);
             }
 =

-            permissions.put("recursedTables"+getClass().getName() + id, re=
cursedMaps);
+            permissions.put("recursedTables"+ getKey() , recursedMaps);
         }
 =

         if (Jahia.getSettings().isEsiCacheActivated() && recursedMaps[0].s=
ize()>0) {
@@ -881,6 +879,10 @@
         return recursedMaps;
     }
 =

+    protected String getKey() {
+        return id.toString();
+    }
+
     public Map getRecursedUserEntries() {
         return getRecursedPermissions (null, null) [0];
     }

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/acl=
/JahiaLinkedContentACL.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/acl/JahiaLinkedContentACL.java&rev=
=3D18081&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/acl/Jahia=
LinkedContentACL.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/acl/Jahia=
LinkedContentACL.java Tue Jul 31 18:40:23 2007
@@ -61,52 +61,9 @@
 =

 =

     public JahiaAcl getACL() {
-//        return new JahiaLinkedContentAcl(mACL, pickedAcl.getACL(), false=
, true);
         return new JahiaLinkedContentAcl(mACL, pickedAcl.getACL());
     }
 =

-//    class JahiaLinkedContentAcl extends JahiaAcl {
-//        private JahiaAcl acl;
-//        private JahiaAcl nextAcl;
-//        private boolean upLevel;
-//        private boolean pickerSide;
-//
-//        public JahiaLinkedContentAcl(JahiaAcl acl, JahiaAcl nextAcl, boo=
lean upLevel, boolean pickerSide) {
-//            setParent(acl.getParent());
-//            setInheritance(acl.getInheritance());
-//            setId(acl.getId());
-//            setUserEntries(acl.getUserEntries());
-//            setGroupEntries(acl.getGroupEntries());
-//            this.acl =3D acl;
-//            this.nextAcl =3D nextAcl;
-//            this.upLevel =3D upLevel;
-//            this.pickerSide =3D pickerSide;
-//        }
-//
-//        public JahiaAcl getParent() {
-//            // check picker/picked acl until root-picked object
-//            upLevel |=3D acl.getId().equals(rootPickedAcl.getACL().getId=
());
-//
-//            if (upLevel) {
-//                // check root-picked hierarchy
-//                if (acl.getParent() !=3D null) {
-//                    return new JahiaLinkedContentAcl(acl.getParent(), ne=
xtAcl, true, false);
-//                } else {
-//                    // back to parent hierarchy
-//                    return nextAcl;
-//                }
-//            } else {
-//                // Redefinition on picked-side -> follow picked hierarch=
y, forget picker
-//                if (!pickerSide && !acl.getUserEntries().isEmpty() || !a=
cl.getGroupEntries().isEmpty()) {
-//                    return acl.getParent();
-//                }
-//
-//                return new JahiaLinkedContentAcl(nextAcl, acl.getParent(=
), upLevel, !pickerSide);
-//            }
-//        }
-//
-//    }
-
     class JahiaLinkedContentAcl extends JahiaAcl {
         private JahiaAcl pickerAcl;
         private JahiaAcl pickedAcl;
@@ -204,6 +161,10 @@
             }
         }
 =

+        protected String getKey() {
+            return getId().toString() + "/" + pickedAcl.getId().toString();
+        }
+
     }
 =

 =


_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to