[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