[Erp5-report] r25678 - /erp5/trunk/products/ERP5Type/DocumentationHelper/

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Feb 24 17:23:47 CET 2009


Author: jm
Date: Tue Feb 24 17:23:46 2009
New Revision: 25678

URL: http://svn.erp5.org?rev=25678&view=rev
Log:
* Show acquired permissions on workflow states.
* Display security settings for all permissions on workflow states.

Modified:
    erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py
    erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowStateDocumentationHelper.py

Modified: erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py?rev=25678&r1=25677&r2=25678&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py [utf8] Tue Feb 24 17:23:46 2009
@@ -32,6 +32,12 @@
 from Products.ERP5Type import Permissions
 from Products.DCWorkflowGraph.DCWorkflowGraph import getGraph
 
+
+permission_code_dict = { 'Access contents information': (0, 'A')
+                       , 'View'                       : (1, 'V')
+                       , 'Modify portal content'      : (2, 'M')
+                       , 'Add portal content'         : (3, 'C')
+                       }
 
 def getRoleList(workflow):
   role_set = set()
@@ -139,7 +145,7 @@
     variable_list = []
     variables = getattr(self.getDocumentedObject(), 'variables', None)
     if variables is not None:
-      for variable in  variables.objectValues():
+      for variable in variables.objectValues():
         variable_list.append((variable.getId(),
                               getattr(variable, "title", ""),
                               getattr(variable, "description", "")
@@ -164,11 +170,23 @@
     variable_id_list = self.getVariableIdList()
     return map(lambda x: ('%s/variables/%s' % (self.uri, x)), variable_id_list)
 
-  security.declareProtected(Permissions.AccessContentsInformation, 'getPermissionList')
-  def getPermissionList(self):
-    """
-    """
-    return getattr(self.getDocumentedObject(), "permissions", ())
+  security.declareProtected(Permissions.AccessContentsInformation, 'getPermissionItemList')
+  def getPermissionItemList(self, **kw):
+    """
+    """
+    permission_list = []
+    extra_code = 0
+    for permission in sorted(getattr(self.getDocumentedObject(),
+                                     "permissions", ())):
+      permission_code = permission_code_dict.get(permission)
+      if permission_code:
+        permission_code = permission_code[1]
+      else:
+        permission_code = str(extra_code)
+        extra_code += 1
+      permission_list.append(self.asContext(permission=permission,
+                                            code=permission_code))
+    return permission_list
 
   security.declareProtected(Permissions.AccessContentsInformation, 'getWorklistIdList')
   def getWorklistIdList(self):

Modified: erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowStateDocumentationHelper.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowStateDocumentationHelper.py?rev=25678&r1=25677&r2=25678&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowStateDocumentationHelper.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowStateDocumentationHelper.py [utf8] Tue Feb 24 17:23:46 2009
@@ -30,7 +30,7 @@
 from Globals import InitializeClass
 from Products.ERP5Type import Permissions
 from DocumentationHelper import DocumentationHelper
-from DCWorkflowDocumentationHelper import getRoleList
+from DCWorkflowDocumentationHelper import getRoleList, permission_code_dict
 
 class DCWorkflowStateDocumentationHelper(DocumentationHelper):
   """
@@ -62,6 +62,12 @@
     """
     return getRoleList(self.getDocumentedObject().getWorkflow())
 
+  security.declareProtected(Permissions.AccessContentsInformation, 'getAcquiredPermissions')
+  def getAcquiredPermissions(self):
+    """
+    """
+    return self.getPermissionsOfRole(None)
+
   security.declareProtected(Permissions.AccessContentsInformation, 'getPermissionsList')
   def getPermissionsList(self):
     """
@@ -76,17 +82,25 @@
       M = Modify Portal Content
       C = Add Portal Content
     """
-    permissions = ""
-    permission_roles = self.getDocumentedObject().permission_roles
-    if permission_roles:
-      if role in permission_roles.get('Access contents information', ()):
-        permissions += "A"
-      if role in permission_roles.get('View', ()):
-        permissions += "V"
-      if role in permission_roles.get('Modify portal content', ()):
-        permissions += "M"
-      if role in permission_roles.get('Add portal content', ()):
-        permissions += "C"
+    permissions = []
+    state = self.getDocumentedObject()
+    permission_list = getattr(state.getWorkflow(), 'permissions', ())
+    if permission_list:
+      extra_sort = len(permission_code_dict)
+      extra_code = 0
+      for permission in sorted(permission_list):
+        permission_code = permission_code_dict.get(permission)
+        if permission_code is None:
+          permission_code = extra_sort, str(extra_code)
+          extra_code += 1
+        permission_info = state.getPermissionInfo(permission)
+        if role and role in permission_info['roles'] \
+           or not role and permission_info['acquired']:
+          permissions.append(permission_code)
+
+    permissions.sort()
+    permissions = ''.join(y for x,y in permissions)
+
     return permissions
 
 




More information about the Erp5-report mailing list