[Checkins] SVN: z3c.securitytool/trunk/ Adding some more upgrades
to the securityMatrix Page
Daniel Blackburn
blackburnd at gmail.com
Thu Feb 7 19:13:10 EST 2008
Log message for revision 83657:
Adding some more upgrades to the securityMatrix Page
Changed:
U z3c.securitytool/trunk/TODO.txt
U z3c.securitytool/trunk/src/z3c/securitytool/browser/viewprincipalmatrix.pt
U z3c.securitytool/trunk/src/z3c/securitytool/browser/views.py
U z3c.securitytool/trunk/src/z3c/securitytool/configure.zcml
-=-
Modified: z3c.securitytool/trunk/TODO.txt
===================================================================
--- z3c.securitytool/trunk/TODO.txt 2008-02-07 23:14:05 UTC (rev 83656)
+++ z3c.securitytool/trunk/TODO.txt 2008-02-08 00:13:09 UTC (rev 83657)
@@ -8,3 +8,20 @@
* Add details pages for groups and roles.
+
+* Relative links for the root
+
+* Securitymatrix should be a link instead of an onclick
+
+* Specifically denied roles
+
+
+SHOW STOPPERS
+
+* Permissions for securitytool views cannot be zope.Public
+
+
+
+DONE
+
+* Onclick for the fiter:
Modified: z3c.securitytool/trunk/src/z3c/securitytool/browser/viewprincipalmatrix.pt
===================================================================
--- z3c.securitytool/trunk/src/z3c/securitytool/browser/viewprincipalmatrix.pt 2008-02-07 23:14:05 UTC (rev 83656)
+++ z3c.securitytool/trunk/src/z3c/securitytool/browser/viewprincipalmatrix.pt 2008-02-08 00:13:09 UTC (rev 83657)
@@ -28,8 +28,7 @@
<p class="matrix_body">Select a skin:
<select name="selectedSkin"
tal:attributes="onchange string:javascript:document.form.submit()"
- tal:define="skin request/session:securitytool/selectedSkin|nothing"
- >
+ tal:define="skin request/session:securitytool/selectedSkin|nothing">
<option value="SkinType"
tal:repeat="skinName view/skinTypes"
tal:attributes="value skinName;
@@ -38,18 +37,16 @@
</select>
</p>
<p class="matrix_body">Filter by permission:
- <select name="selectedPermission">
+ <select name="selectedPermission"
+ tal:attributes="onchange string:javascript:document.form.submit();"
+ tal:define="selPerm request/session:securitytool/selectedPermission|nothing">
<option value="None">---</option>
<option value="Permission"
tal:repeat="permission view/getPermissionList"
tal:attributes="value permission;
- selected
- python:request.form.has_key('selectedPermission')
- and request.form['selectedPermission']==permission"
+ selected python:selPerm==permission"
tal:content="permission">permission</option>
</select>
-
- <input type="submit" name="FILTER" value="Filter"/>
</p>
</form>
<br />
Modified: z3c.securitytool/trunk/src/z3c/securitytool/browser/views.py
===================================================================
--- z3c.securitytool/trunk/src/z3c/securitytool/browser/views.py 2008-02-07 23:14:05 UTC (rev 83656)
+++ z3c.securitytool/trunk/src/z3c/securitytool/browser/views.py 2008-02-08 00:13:09 UTC (rev 83657)
@@ -27,15 +27,28 @@
evenodd = 0
def update(self):
- self.viewList = {}
- selectedPermission = None
+ skin = self.handleSkinSelection()
+ perm = self.handlePermissionSelection()
- #Get the selected skin from the form or the first skin on the system.
+ ifaces = tuple(providedBy(self.context))
+ security_checker = ISecurityChecker(self.context)
- formSkin = self.request.form.get('selectedSkin','')
- sessionSkin = ISession(self.request)[SESSION_KEY].get('selectedSkin','')
- defaultSkin = self.skinTypes.items()[0][0]
+ # Here we populate the viewMatrix
+ self.viewMatrix, self.views, self.permissions = \
+ security_checker.getPermissionSettingsForAllViews(ifaces, skin,
+ perm)
+ self.sortViews()
+
+ def handleSkinSelection(self):
+ """ This method handles the logic for the selectedSkin
+ widget and session storage for the widget
+ """
+ selectedPermission = None
+ formSkin = self.request.form.get('selectedSkin','')
+ sessionSkin= ISession(self.request)[SESSION_KEY].get('selectedSkin','')
+ defaultSkin= self.skinTypes.items()[0][0]
+
if formSkin:
selectedSkin = formSkin
elif sessionSkin:
@@ -45,21 +58,39 @@
skin = zapi.getUtility(IBrowserSkinType,selectedSkin)
ISession(self.request)[SESSION_KEY]['selectedSkin'] = selectedSkin
+
+ return skin
- if 'FILTER' in self.request.form:
- if (self.request.form.has_key('selectedPermission') and
- self.request.form['selectedPermission'] != 'None'):
- selectedPermission = self.request.form['selectedPermission']
+ def handlePermissionSelection(self):
+ """ This method handles the logic for the selectedPermission
+ widget and session storage for the widget
+ """
+
+ formPerm = self.request.form.get('selectedPermission','')
+ sessionPerm= ISession(self.request)[SESSION_KEY].get(
+ 'selectedPermission','')
+
+ if formPerm:
+ if formPerm == u'None':
+ selectedPermission = ''
+ else:
+ selectedPermission = formPerm
+ else:
+ selectedPermission = sessionPerm or ''
- ifaces = tuple(providedBy(self.context))
- security_checker = ISecurityChecker(self.context)
+ ISession(self.request)[SESSION_KEY]['selectedPermission'] = \
+ selectedPermission
+ return selectedPermission
- self.viewMatrix, self.views, self.permissions = \
- security_checker.getPermissionSettingsForAllViews(ifaces, skin,
- selectedPermission)
- # self.views is a dict in the form of {view:perm}
- # Here It would make more sense to group by permission rather than view
+ def sortViews(self):
+ """ self.views is a dict in the form of {view:perm}
+ Here It would make more sense to group by permission
+ rather than view
+ """
+ self.viewList = {}
+
+
sortedViews = sorted([(v,k) for k,v in self.views.items()])
for item in sortedViews:
@@ -68,7 +99,6 @@
else:
self.viewList[item[0]] = [item[1]]
-
def cssclass(self):
""" determiner what background color to use for lists """
if self.evenodd != 1:
Modified: z3c.securitytool/trunk/src/z3c/securitytool/configure.zcml
===================================================================
--- z3c.securitytool/trunk/src/z3c/securitytool/configure.zcml 2008-02-07 23:14:05 UTC (rev 83656)
+++ z3c.securitytool/trunk/src/z3c/securitytool/configure.zcml 2008-02-08 00:13:09 UTC (rev 83657)
@@ -14,7 +14,6 @@
for="*"
/>
-
<include package=".browser" />
More information about the Checkins
mailing list