[Checkins] SVN: z3c.securitytool/trunk/src/z3c/securitytool/ Fixed issue where principaldetails was not showing all roles assigned, also fixed up the page template

Daniel Blackburn blackburnd at gmail.com
Thu Feb 7 13:28:34 EST 2008


Log message for revision 83638:
  Fixed issue where principaldetails was not showing all roles assigned, also fixed up the page template

Changed:
  U   z3c.securitytool/trunk/src/z3c/securitytool/browser/principalinfo.pt
  U   z3c.securitytool/trunk/src/z3c/securitytool/browser/securitytool.css
  U   z3c.securitytool/trunk/src/z3c/securitytool/securitytool.py

-=-
Modified: z3c.securitytool/trunk/src/z3c/securitytool/browser/principalinfo.pt
===================================================================
--- z3c.securitytool/trunk/src/z3c/securitytool/browser/principalinfo.pt	2008-02-07 18:15:10 UTC (rev 83637)
+++ z3c.securitytool/trunk/src/z3c/securitytool/browser/principalinfo.pt	2008-02-07 18:28:34 UTC (rev 83638)
@@ -44,7 +44,8 @@
                   <div class="contentList"  tal:condition="roles">
                     <div tal:repeat="role roles">
                       <b tal:content="role">zope.ManageSite:</b>
-                      <div tal:repeat="permission python:roles[role]">
+                      <div class="contentList"
+                           tal:repeat="permission python:roles[role]">
                         <ul>
                           <li>
                            <span tal:content="permission/permission"/>

Modified: z3c.securitytool/trunk/src/z3c/securitytool/browser/securitytool.css
===================================================================
--- z3c.securitytool/trunk/src/z3c/securitytool/browser/securitytool.css	2008-02-07 18:15:10 UTC (rev 83637)
+++ z3c.securitytool/trunk/src/z3c/securitytool/browser/securitytool.css	2008-02-07 18:28:34 UTC (rev 83638)
@@ -112,6 +112,10 @@
     margin-left: 3em;
 }
 
+.contentRoleList {
+    margin-left: 4em;
+}
+
 .legend {
    font-style: italic;
    /*margin-left: 25px;*/

Modified: z3c.securitytool/trunk/src/z3c/securitytool/securitytool.py
===================================================================
--- z3c.securitytool/trunk/src/z3c/securitytool/securitytool.py	2008-02-07 18:15:10 UTC (rev 83637)
+++ z3c.securitytool/trunk/src/z3c/securitytool/securitytool.py	2008-02-07 18:28:34 UTC (rev 83638)
@@ -88,6 +88,7 @@
         settings = {}
         settingList = [val for val, val in settingsForObject(viewInstance)]
         
+        #For each item in our list we will update the settings dict
         for setting in settingList:
             for key,val in setting.items():
                 if not settings.has_key(key):
@@ -158,6 +159,17 @@
         principal = principals.getPrincipal(principal_id)
 
         ifaces = tuple(providedBy(self.context))
+
+
+        #settingList = [val for val, val in settingsForObject(viewInstance)]
+        #
+        ##For each item in our list we will update the settings dict
+        #for setting in settingList:
+        #    for key,val in setting.items():
+        #        if not settings.has_key(key):
+        #            settings[key] = []
+        #        settings[key].extend(val)
+
         for iface in ifaces:
             for view_reg in getViews(iface, IBrowserRequest):
                 view = self.getView(view_reg, skin)
@@ -168,7 +180,6 @@
 
                 PrinSettings = self.policyPermissions(principal,
                                                       all_settings)
-
                 if PrinSettings['permissions']:
                     if PrinSettings['permissions'] not in \
                            prinPermSettings['permissions']:
@@ -180,6 +191,7 @@
                 if PrinSettings['groups']:                  
                     prinPermSettings['groups'].update(PrinSettings['groups'])
                 
+
         return prinPermSettings
 
 
@@ -192,37 +204,50 @@
                             'roles': {},
                             'groups': {}}
         principals = zapi.principals()
-        for setting in settings:
-            # Here we get all the permssions for this principal
-            for prinPerms in setting.get('principalPermissions', ()):
-                if prinPerms['principal'] == principal.id:
-                    permission = prinPerms['permission']
-                    _setting = prinPerms['setting'].getName()
+
+        setting = {}
+        #For each item in our list we will update the settings dict
+
+        for item in settings:
+            for key,val in item.items():
+                if not setting.has_key(key):
+                    setting[key] = []
+                setting[key].extend(val)
+
+
+        # Here we get all the permssions for this principal
+        for prinPerms in setting.get('principalPermissions', ()):
+            if prinPerms['principal'] == principal.id:
+                permission = prinPerms['permission']
+                _setting = prinPerms['setting'].getName()
+                mapping = {'permission': permission,
+                           'setting': _setting}
+                if not mapping in prinPermSettings['permissions']:
+                    prinPermSettings['permissions'].append(mapping)
+        # Here we get all the roles for this principal
+        for prinRoles in setting.get('principalRoles', ()):
+            if prinRoles['principal'] != principal.id:
+                continue
+            role = prinRoles['role']
+
+            for rolePerms in setting['rolePermissions']:
+                if rolePerms['role'] == role:
+                    permission = rolePerms['permission']
+                    _setting = rolePerms['setting'].getName()
                     mapping = {'permission': permission,
                                'setting': _setting}
-                    if not mapping in prinPermSettings['permissions']:
-                        prinPermSettings['permissions'].append(mapping)
-            # Here we get all the roles for this principal
-            for prinRoles in setting.get('principalRoles', ()):
-                if prinRoles['principal'] != principal.id:
-                    continue
-                role = prinRoles['role']
-                for rolePerms in setting['rolePermissions']:
-                    if rolePerms['role'] == role:
-                        permission = rolePerms['permission']
-                        _setting = rolePerms['setting'].getName()
-                        mapping = {'permission': permission,
-                                   'setting': _setting}
-                        perms = prinPermSettings['roles'].setdefault(
-                            role, [])
-                        if not mapping in perms:
-                            perms.append(mapping)
-            # Here we loop through the groups and recursively call this method
-            # for each one found.
-            for group_id in principal.groups:
-                group = principals.getPrincipal(group_id)
-                prinPermSettings['groups'][group_id] = \
-                    self.policyPermissions(group, settings)
+                    perms = prinPermSettings['roles'].setdefault(
+                        role, [])
+
+                    if not mapping in perms:
+                        perms.append(mapping)
+        # Here we loop through the groups and recursively call this method
+        # for each one found.
+        for group_id in principal.groups:
+            group = principals.getPrincipal(group_id)
+            prinPermSettings['groups'][group_id] = \
+                self.policyPermissions(group, settings)
+
         return prinPermSettings
 
 



More information about the Checkins mailing list