def test_can_purge(self): """Testing IWorkspaceRoster.can_purge()""" project1, roster1 = self._base_fixtures() project2 = self.portal['project2'] roster2 = IWorkspaceRoster(project2) user_oneproject = '*****@*****.**' user_twoprojects = '*****@*****.**' self.site_members.register(user_oneproject, send=False) self.site_members.register(user_twoprojects, send=False) roster1.add(user_oneproject) roster1.add(user_twoprojects) roster2.add(user_twoprojects) self.assertTrue(roster1.can_purge(user_oneproject)) self.assertFalse(roster1.can_purge(user_twoprojects)) # disallowed self.assertFalse(roster2.can_purge(user_twoprojects)) # here too. self.assertFalse(roster2.can_purge(user_oneproject)) # not in here # cannot purge from a team, even with otherwise purgeable user: self.assertFalse( IWorkspaceRoster(project1['team1']).can_purge(user_oneproject))
def test_can_purge(self): """Testing IWorkspaceRoster.can_purge()""" project1, roster1 = self._base_fixtures() project2 = self.portal['project2'] roster2 = IWorkspaceRoster(project2) user_oneproject = '*****@*****.**' user_twoprojects = '*****@*****.**' self.site_members.register(user_oneproject, send=False) self.site_members.register(user_twoprojects, send=False) roster1.add(user_oneproject) roster1.add(user_twoprojects) roster2.add(user_twoprojects) self.assertTrue(roster1.can_purge(user_oneproject)) self.assertFalse(roster1.can_purge(user_twoprojects)) # disallowed self.assertFalse(roster2.can_purge(user_twoprojects)) # here too. self.assertFalse(roster2.can_purge(user_oneproject)) # not in here # cannot purge from a team, even with otherwise purgeable user: self.assertFalse( IWorkspaceRoster(project1['team1']).can_purge(user_oneproject) )
class PurgeUserView(WorkspaceViewBase): """View to purge a single user from project""" def __init__(self, context, request): if not IProjectContext.providedBy(context): raise ValueError("Can only purge from top-level projects") super(PurgeUserView, self).__init__(context, request) def update(self, *args, **kwargs): self.roster = IWorkspaceRoster(self.context) if "confirm_purge" in self.request.form: username = self.request.form.get("purgeuser").strip() if username not in self.roster: raise ValueError("User name for purge not found %s" % username) if not self.roster.can_purge(username): raise ValueError("User name %s locked from purging." % username) self.roster.purge_user(username) def __call__(self, *args, **kwargs): self.update(*args, **kwargs) return self.index(*args, **kwargs) # form template
class PurgeUserView(WorkspaceViewBase): """View to purge a single user from project""" def __init__(self, context, request): if not IProjectContext.providedBy(context): raise ValueError('Can only purge from top-level projects') super(PurgeUserView, self).__init__(context, request) def update(self, *args, **kwargs): self.roster = IWorkspaceRoster(self.context) if 'confirm_purge' in self.request.form: username = self.request.form.get('purgeuser').strip() if username not in self.roster: raise ValueError('User name for purge not found %s' % username) if not self.roster.can_purge(username): raise ValueError('User name %s locked from purging.' % username) self.roster.purge_user(username) def __call__(self, *args, **kwargs): self.update(*args, **kwargs) return self.index(*args, **kwargs) # form template