def handleApply(self, action): data = self.extractData()[0] ws = IWorkspace(self.context) other_ws_id = data.get("workspace") other_ws = IWorkspace(api.content.get(UID=other_ws_id)) move = data.get("move", False) removable = [] for userid in ws.members: user = api.user.get(userid=userid) if user is not None: user_id = user.getId() other_ws.add_to_team(user=user_id) removable.append(userid) if move: for userid in removable: factory = ws.membership_factory(ws, {"user": userid}) factory.remove_from_team() self.updateWidgets() self.status = "Members transfered."
def handleApply(self, action): data = self.extractData()[0] ws = IWorkspace(self.context) other_ws_id = data.get("workspace") other_ws = IWorkspace(api.content.get(UID=other_ws_id)) move = data.get("move", False) removable = [] for member in ws.members: user = api.user.get(username=member) if user is not None: user_id = user.getId() other_ws.add_to_team(user=user_id) removable.append(member) if move: func = lambda member: ws.membership_factory( ws, {"user": member}).remove_from_team() map(func, removable) self.updateWidgets() self.status = "Members transfered."
def update_users(self, entries): """Update user properties on the roster """ ws = IWorkspace(self.context) members = ws.members # check user permissions against join policy join_policy = self.context.join_policy if (join_policy == "admin" and not checkPermission( "collective.workspace: Manage roster", self.context)): raise Unauthorized("You are not allowed to add users here") for entry in entries: id = entry.get('id') is_member = bool(entry.get('member')) is_admin = bool(entry.get('admin')) # Existing members if id in members: member = members[id] if not is_member: if checkPermission( "ploneintranet.workspace: Manage workspace", self.context): ws.membership_factory(ws, member).remove_from_team() else: raise Unauthorized( "Only team managers can remove members") elif not is_admin: ws.membership_factory(ws, member).groups -= {'Admins'} else: ws.membership_factory(ws, member).groups |= {'Admins'} # New members elif id not in members and (is_member or is_admin): groups = set() if is_admin: groups.add('Admins') ws.add_to_team(user=id, groups=groups)
def update_users(self, entries): """Update user properties on the roster """ ws = IWorkspace(self.context) members = ws.members # check user permissions against join policy join_policy = self.context.join_policy if (join_policy == "admin" and not checkPermission( "ploneintranet.workspace: Manage workspace", self.context)): raise Unauthorized("You are not allowed to add users here") for entry in entries: id = entry.get('id') is_member = bool(entry.get('member')) is_admin = bool(entry.get('admin')) # Existing members if id in members: member = members[id] if not is_member: if checkPermission( "ploneintranet.workspace: Manage workspace", self.context): ws.membership_factory(ws, member).remove_from_team() else: raise Unauthorized( "Only team managers can remove members") elif not is_admin: ws.membership_factory(ws, member).groups -= {'Admins'} else: ws.membership_factory(ws, member).groups |= {'Admins'} # New members elif id not in members and (is_member or is_admin): groups = set() if is_admin: groups.add('Admins') ws.add_to_team(user=id, groups=groups)