def updateRoleMappingsFor(self, ob): """Changes the object permissions according to the current state. """ changed = 0 sdef = self._getWorkflowStateOf(ob) if sdef is None: return 0 # Update the role -> permission map. if self.permissions: for p in self.permissions: roles = [] if sdef.permission_roles is not None: roles = sdef.permission_roles.get(p, roles) if modifyRolesForPermission(ob, p, roles): 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(ob, group, roles, managed_roles): changed = 1 return changed