[Checkins] SVN: z3c.securitytool/trunk/src/z3c/securitytool/securitytool.py Principal Details page now respects the groups inherited permissions and applies them to the permissions section

Daniel Blackburn blackburnd at gmail.com
Sun May 25 16:01:50 EDT 2008


Log message for revision 86944:
  Principal Details page now respects the groups inherited permissions and applies them to the permissions section

Changed:
  U   z3c.securitytool/trunk/src/z3c/securitytool/securitytool.py

-=-
Modified: z3c.securitytool/trunk/src/z3c/securitytool/securitytool.py
===================================================================
--- z3c.securitytool/trunk/src/z3c/securitytool/securitytool.py	2008-05-25 10:04:39 UTC (rev 86943)
+++ z3c.securitytool/trunk/src/z3c/securitytool/securitytool.py	2008-05-25 20:01:48 UTC (rev 86944)
@@ -59,6 +59,8 @@
         permissions and role-permissions  permissions will always win.
         """
 
+        # TODO Need a viewGroupMatrix:
+
         for item in self.viewRoleMatrix:
             if not  self.viewMatrix.has_key(item):
                 self.viewMatrix[item] = {}
@@ -155,6 +157,7 @@
         """
         matrix = self.viewPermMatrix
         principalPermissions.reverse()
+
         for prinPerm in principalPermissions:
             if prinPerm['permission'] != read_perm:
                 #If it is not the read_perm it is uninteresting
@@ -436,7 +439,19 @@
                 group_id = group.id
                 gMatrix = {group_id: self(group_id)}
                 pMatrix['groups'].update(gMatrix)
-                       
+                
+            #import pdb; pdb.set_trace()
+
+            # The following section updates the principalPermissions with
+            # the permissions found in the groups assigned. if the permisssion
+            # already exists for the principal then we ignore it.
+            permList = [x.items()[1][1] for x in pMatrix['permissions']]
+            for matrix in gMatrix.values():
+                for tmp in matrix['permissions']:
+                    gPerm = tmp['permission']
+                    if gPerm not in permList:
+                        pMatrix['permissions'].append(tmp)
+
         self.orderRoleTree(pMatrix)
         return pMatrix
 



More information about the Checkins mailing list