Commit fe8638e1 authored by wenjie.zheng's avatar wenjie.zheng

Permission_role: directly uses Workflow definded getRoleList.

parent 262e68c3
...@@ -72,14 +72,15 @@ class PermissionRoles(XMLObject): ...@@ -72,14 +72,15 @@ class PermissionRoles(XMLObject):
if self.is_selected == 1: if self.is_selected == 1:
permission_id = int(self.id.split('_')[1]) permission_id = int(self.id.split('_')[1])
role_id = int(self.id.split('_')[2]) role_id = int(self.id.split('_')[2])
LOG('zwj: Assign %s to %s' %(role_id, permission_id), WARNING, "in PermissionRole.") ### zwj: make sure here gets the right coordinates
permission_list = sorted(self.getParent().getParent().getManagedPermissionList()) # LOG('zwj: Assign %s to %s' %(role_id, permission_id), WARNING, "in PermissionRole.")
role_list = sorted(["Anonymous", "Assignee", "Assignor", "Associate", erp5workflow = self.getParent().getParent()
"Auditor", "Authenticated", "Author", "Manager", permission_list = sorted(erp5workflow.getManagedPermissionList())
"Member", "Owner", "Reviewer"]) role_list = erp5workflow.getRoleList()
permission = permission_list[permission_id] permission = permission_list[permission_id]
role = role_list[role_id] role = role_list[role_id]
LOG('zwj: Assign %s to %s' %(role, permission), WARNING, "in PermissionRole.") ### zwj: check the name of the role and permission is the ones we want
#LOG('zwj: Assign %s to %s' %(role, permission), WARNING, "in PermissionRole.")
if role == 'None': if role == 'None':
role = ['Manager'] role = ['Manager']
return permission, role return permission, role
...@@ -52,7 +52,6 @@ class State(XMLObject, XMLMatrix): ...@@ -52,7 +52,6 @@ class State(XMLObject, XMLMatrix):
isRADContent = 1 isRADContent = 1
###zwj: security features ###zwj: security features
erp5_permission_roles = {} # { permission: [role] or (role,) } erp5_permission_roles = {} # { permission: [role] or (role,) }
group_roles = None
# Declarative security # Declarative security
security = ClassSecurityInfo() security = ClassSecurityInfo()
...@@ -175,12 +174,6 @@ class State(XMLObject, XMLMatrix): ...@@ -175,12 +174,6 @@ class State(XMLObject, XMLMatrix):
kwd['base_id'] = 'movement' kwd['base_id'] = 'movement'
return XMLMatrix.newCell(self, *kw, **kwd) return XMLMatrix.newCell(self, *kw, **kwd)
### matrix method
def setPermission(self, permission, acquired, roles, REQUEST=None): def setPermission(self, permission, acquired, roles, REQUEST=None):
"""Set a permission for this State.""" """Set a permission for this State."""
pr = self.erp5_permission_roles pr = self.erp5_permission_roles
......
...@@ -58,9 +58,7 @@ class Workflow(XMLObject): ...@@ -58,9 +58,7 @@ class Workflow(XMLObject):
### zwj: for security issue ### zwj: for security issue
managed_permission = () managed_permission = ()
managed_role = () managed_role = ()
group = ()
erp5_permission_roles = {} # { permission: [role] or (role,) } erp5_permission_roles = {} # { permission: [role] or (role,) }
erp5_role_groups = ()
role_list = sorted(["Anonymous", "Assignee", "Assignor", "Associate", role_list = sorted(["Anonymous", "Assignee", "Assignor", "Associate",
"Auditor", "Authenticated", "Author", "Manager", "Auditor", "Authenticated", "Author", "Manager",
"Member", "Owner", "Reviewer"]) "Member", "Owner", "Reviewer"])
...@@ -175,22 +173,13 @@ class Workflow(XMLObject): ...@@ -175,22 +173,13 @@ class Workflow(XMLObject):
sdef = sdef = document._getDefaultAcquiredValue(self.getStateBaseCategory()) sdef = sdef = document._getDefaultAcquiredValue(self.getStateBaseCategory())
if sdef is None: if sdef is None:
return 0 return 0
"""
# Update the role -> permission map.
if self.permissions:
for p in self.permissions:
roles = []
if sdef.erp5_permission_roles is not None: ### permission is defined in state
roles = sdef.erp5_permission_roles.get(p, roles)
if modifyRolesForPermission(document, p, roles):
changed = 1
"""
### zwj: get all matrix cell objects ### zwj: get all matrix cell objects
permission_role_matrix_cells = sdef.objectValues(portal_type = "PermissionRoles") permission_role_matrix_cells = sdef.objectValues(portal_type = "PermissionRoles")
### zwj: build a permission roles dict ### zwj: build a permission roles dict
for perm_role in permission_role_matrix_cells: for perm_role in permission_role_matrix_cells:
permission,role = perm_role.getPermissionRole() permission,role = perm_role.getPermissionRole()
LOG('zwj: Assign %s to %s' %(role, permission), WARNING, "in Workflow.") ### zwj: double check the right role and permission are obtained
#LOG('zwj: Assign %s to %s' %(role, permission), WARNING, "in Workflow.")
if permission != 'None': if permission != 'None':
if self.erp5_permission_roles.has_key(permission): if self.erp5_permission_roles.has_key(permission):
self.erp5_permission_roles[permission] += (role,) self.erp5_permission_roles[permission] += (role,)
...@@ -201,23 +190,14 @@ class Workflow(XMLObject): ...@@ -201,23 +190,14 @@ class Workflow(XMLObject):
for permission_roles in self.erp5_permission_roles.keys(): for permission_roles in self.erp5_permission_roles.keys():
if modifyRolesForPermission(document, permission_roles, self.erp5_permission_roles[permission_roles]): if modifyRolesForPermission(document, permission_roles, self.erp5_permission_roles[permission_roles]):
changed = 1 changed = 1
"""
# Update the group -> role map.
groups = self.getGroups()
managed_roles = self.getRoles()
if groups and managed_roles:
for group in groups:
roles = ()
if sdef.group_roles is not None:
roles = sdef.group_roles.get(group, ())
if modifyRolesForGroup(document, group, roles, managed_roles):
changed = 1
"""
return changed return changed
def getRoleList(self): def getRoleList(self):
return self.role_list return self.role_list
### zwj: unknown objective function
"""
def _checkTransitionGuard(self, t, document, **kw): def _checkTransitionGuard(self, t, document, **kw):
guard = t.guard guard = t.guard
if guard is None: if guard is None:
...@@ -225,7 +205,7 @@ class Workflow(XMLObject): ...@@ -225,7 +205,7 @@ class Workflow(XMLObject):
if guard.check(getSecurityManager(), self, document, **kw): if guard.check(getSecurityManager(), self, document, **kw):
return 1 return 1
return return
"""
### Security feature end ### Security feature end
########### ###########
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment