[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