From 67337cd1fef2389d88d2907225a261865a95193c Mon Sep 17 00:00:00 2001 From: Julien Muchembled <jm@nexedi.com> Date: Wed, 18 Feb 2009 17:36:56 +0000 Subject: [PATCH] Fix display of permissions on workflow states. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@25612 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../DCWorkflowDocumentationHelper.py | 35 ++++++++++--------- .../DCWorkflowStateDocumentationHelper.py | 23 ++---------- 2 files changed, 21 insertions(+), 37 deletions(-) diff --git a/product/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py index 1b738fa0bd..ddfbf2d69d 100644 --- a/product/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py @@ -32,26 +32,27 @@ from DocumentationHelper import DocumentationHelper from Products.ERP5Type import Permissions from Products.DCWorkflowGraph.DCWorkflowGraph import getGraph -def getStatePermissionsOfRole(state=None, role=''): +def getStatePermissionsOfRole(state, role): + """ + Returns list of permissions for a given role with AVMC format above + A = Access contents information + V = View + M = Modify Portal Content + C = Add Portal Content + """ permissions = "" - if state != None: - if hasattr(state, '__dict__'): - if 'permission_roles' in state.__dict__.keys(): - if 'View' in state.__dict__['permission_roles'].keys(): - if role in state.__dict__['permission_roles']['View']: - permissions += "V" - if 'Access contents information' in state.__dict__['permission_roles'].keys(): - if role in state.__dict__['permission_roles']['Access contents information']: - permissions += "A" - if 'Modify portal content' in state.__dict__['permission_roles'].keys(): - if role in state.__dict__['permission_roles']['Modify portal content']: - permissions += "M" - if 'Add portal content' in state.__dict__['permission_roles'].keys(): - if role in state.__dict__['permission_roles']['Add portal content']: - permissions += "C" + permission_roles = state.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" return permissions - class DCWorkflowDocumentationHelper(DocumentationHelper): """ Provides access to all documentation information diff --git a/product/ERP5Type/DocumentationHelper/DCWorkflowStateDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/DCWorkflowStateDocumentationHelper.py index 198d93a1d1..70a7c5286e 100644 --- a/product/ERP5Type/DocumentationHelper/DCWorkflowStateDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/DCWorkflowStateDocumentationHelper.py @@ -28,8 +28,9 @@ from AccessControl import ClassSecurityInfo from Globals import InitializeClass -from DocumentationHelper import DocumentationHelper from Products.ERP5Type import Permissions +from DocumentationHelper import DocumentationHelper +from DCWorkflowDocumentationHelper import getStatePermissionsOfRole class DCWorkflowStateDocumentationHelper(DocumentationHelper): """ @@ -53,25 +54,7 @@ class DCWorkflowStateDocumentationHelper(DocumentationHelper): return self.getDocumentedObject().transitions def getPermissionsOfRole(self, role): - """ - Returns list of permissions for a given role with AVMC format above - A = Access contents information - V = View - M = Modify Portal Content - C = Add Portal Content - """ - permissions = "" - permission_roles = self.getDocumentedObject().permission_roles - if permission_roles: - if role in state.permission_roles.get('Access contents information', ()): - permissions += "A" - if role in state.permission_roles.get('View', ()): - permissions += "V" - if role in state.permission_roles.get('Modify portal content', ()): - permissions += "M" - if role in state.permission_roles.get('Add portal content', ()): - permissions += "C" - return permissions + return getStatePermissionsOfRole(self.getDocumentedObject(), role) security.declareProtected(Permissions.AccessContentsInformation, 'getPermissionsOfRoleOwner') def getPermissionsOfRoleOwner(self): -- 2.30.9