[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