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))
예제 #2
0
 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)
         )
예제 #3
0
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
예제 #4
0
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