From e241bacbc3cb26cdc54b96e646994b068e600572 Mon Sep 17 00:00:00 2001 From: Kevin Deldycke <kevin@nexedi.com> Date: Thu, 17 Jun 2004 13:14:26 +0000 Subject: [PATCH] Creation of the addLocalRoleNode() independant function to handle the local roles processing. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@1031 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5SyncML/Conduit/ERP5Conduit.py | 32 +++++++++++++++-------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/product/ERP5SyncML/Conduit/ERP5Conduit.py b/product/ERP5SyncML/Conduit/ERP5Conduit.py index 4751d61c70..ae2dc5955b 100755 --- a/product/ERP5SyncML/Conduit/ERP5Conduit.py +++ b/product/ERP5SyncML/Conduit/ERP5Conduit.py @@ -183,17 +183,7 @@ class ERP5Conduit(XMLSyncUtilsMixin): conflict_list += self.addWorkflowNode(object, xml, simulate) #elif xml.nodeName in self.local_role_list or self.isLocalRole(xml)>0 and not simulate: elif xml.nodeName in self.local_role_list: - # We want to add a local role - roles = self.convertXmlValue(xml.childNodes[0].data,data_type='tokens') - user = self.getAttribute(xml,'id') - roles = list(roles) # Needed for CPS, or we have a CPS error - LOG('local_role: ',0,'user: %s roles: %s' % (repr(user),repr(roles))) - #user = roles[0] - #roles = roles[1:] - if xml.nodeName.find(self.local_role_tag)>=0: - object.manage_setLocalRoles(user,roles) - elif xml.nodeName.find(self.local_group_tag)>=0: - object.manage_setLocalGroupRoles(user,roles) + conflict_list += self.addLocalRoleNode(object, xml) else: conflict_list += self.updateNode(xml=xml,object=object, force=force, simulate=simulate, **kw) @@ -1004,6 +994,26 @@ class ERP5Conduit(XMLSyncUtilsMixin): #else: # return wf_conflict_list return conflict_list + + security.declareProtected(Permissions.ModifyPortalContent, 'addLocalRoleNode') + def addLocalRoleNode(self, object, xml): + """ + This allows to specify how to handle the local role informations. + This is really usefull if you want to write your own Conduit. + """ + conflict_list = [] + # We want to add a local role + roles = self.convertXmlValue(xml.childNodes[0].data,data_type='tokens') + user = self.getAttribute(xml,'id') + roles = list(roles) # Needed for CPS, or we have a CPS error + LOG('local_role: ',0,'user: %s roles: %s' % (repr(user),repr(roles))) + #user = roles[0] + #roles = roles[1:] + if xml.nodeName.find(self.local_role_tag)>=0: + object.manage_setLocalRoles(user,roles) + elif xml.nodeName.find(self.local_group_tag)>=0: + object.manage_setLocalGroupRoles(user,roles) + return conflict_list security.declareProtected(Permissions.ModifyPortalContent, 'editDocument') def editDocument(self, object=None, **kw): -- 2.30.9