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

Interaction.py: fix interaction guard generator.

parent ce2e49e1
...@@ -31,7 +31,7 @@ import transaction ...@@ -31,7 +31,7 @@ import transaction
from AccessControl import getSecurityManager, ClassSecurityInfo from AccessControl import getSecurityManager, ClassSecurityInfo
from Acquisition import aq_inner, aq_parent from Acquisition import aq_inner, aq_parent
from Products.DCWorkflow.Guard import Guard from Products.DCWorkflow.Guard import Guard
from Products.DCWorkflow.Expression import Expression, StateChangeInfo from Products.DCWorkflow.Expression import Expression
from Products.ERP5Type import Globals, Permissions, PropertySheet from Products.ERP5Type import Globals, Permissions, PropertySheet
from Products.ERP5Type.Globals import PersistentMapping from Products.ERP5Type.Globals import PersistentMapping
from Products.ERP5Type.id_as_reference import IdAsReferenceMixin from Products.ERP5Type.id_as_reference import IdAsReferenceMixin
...@@ -102,19 +102,20 @@ class Interaction(IdAsReferenceMixin('interaction_', "prefix"), XMLObject): ...@@ -102,19 +102,20 @@ class Interaction(IdAsReferenceMixin('interaction_', "prefix"), XMLObject):
return self.guard return self.guard
def generateGuard(self): def generateGuard(self):
if self.guard == None: if self.guard is None:
self.guard = Guard(permissions=self.getPermissionList(), self.guard = Guard(permissions=self.getPermissionList(),
roles=self.getRoleList(), roles=self.getRoleList(),
groups=self.getGroupList(), groups=self.getGroupList(),
expr=self.getExpression()) expr=Expression(self.getExpression()))
if self.guard.roles != self.getRoleList():
if self.getRoleList() is not None:
self.guard.roles = self.getRoleList() self.guard.roles = self.getRoleList()
elif self.guard.permissions != self.getPermissionList(): if self.getPermissionList() is not None:
self.guard.permissions = self.getPermissionList() self.guard.permissions = self.getPermissionList()
elif self.guard.groups != self.getGroupList(): if self.getGroupList() is not None:
self.guard.groups = self.getGroupList() self.guard.groups = self.getGroupList()
elif self.guard.expr != self.getExpression(): if self.getExpression() is not None:
self.guard.expr = self.getExpression() self.guard.expr = Expression(self.getExpression())
def getMethodId(self): def getMethodId(self):
if type(self.method_id) is type(''): if type(self.method_id) is type(''):
......
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