def create(cls, member, team): if not ITeam.providedBy(team): raise TypeError('team must be ITeam: %s' % repr(team)) return super(TeamInvitationNotificationJob, cls).create(minor_person=member, major_person=team, metadata={})
def create(cls, member, team, reviewer, old_status, new_status, last_change_comment=None): if not ITeam.providedBy(team): raise TypeError('team must be ITeam: %s' % repr(team)) if not IPerson.providedBy(reviewer): raise TypeError('reviewer must be IPerson: %s' % repr(reviewer)) if old_status not in TeamMembershipStatus: raise TypeError("old_status must be TeamMembershipStatus: %s" % repr(old_status)) if new_status not in TeamMembershipStatus: raise TypeError("new_status must be TeamMembershipStatus: %s" % repr(new_status)) metadata = { 'reviewer': reviewer.id, 'old_status': old_status.name, 'new_status': new_status.name, 'last_change_comment': last_change_comment, } return super(MembershipNotificationJob, cls).create(minor_person=member, major_person=team, metadata=metadata)
def enable_if_active(*args, **kws): link = self._function(obj, *args, **kws) if not ITeam.providedBy(obj.context) or not obj.context.is_team: link.enabled = False mailing_list = getUtility(IMailingListSet).get(obj.context.name) if mailing_list is None or not mailing_list.is_usable: link.enabled = False return link
def create(cls, member, team, dateexpires): if not ITeam.providedBy(team): raise TypeError('team must be ITeam: %s' % repr(team)) metadata = { 'dateexpires': cls._serialiseDateTime(dateexpires), } return super(SelfRenewalNotificationJob, cls).create(minor_person=member, major_person=team, metadata=metadata)
def maybeRestrictToTeam(self, request): restrict_to_team = config.launchpad.restrict_to_team if not restrict_to_team: return restrictedlogin = '******' restrictedinfo = '+restricted-info' # Always allow access to +restrictedlogin and +restrictedinfo. traversal_stack = request.getTraversalStack() if (traversal_stack == [restrictedlogin] or traversal_stack == [restrictedinfo]): return principal = request.principal team = getUtility(IPersonSet).getByName(restrict_to_team) if team is None: raise AssertionError('restrict_to_team "%s" not found' % restrict_to_team) elif not ITeam.providedBy(team): raise AssertionError('restrict_to_team "%s" is not a team' % restrict_to_team) if IUnauthenticatedPrincipal.providedBy(principal): location = '/%s' % restrictedlogin else: # We have a team we can work with. user = IPerson(principal) if (user.inTeam(team) or user.inTeam(getUtility(ILaunchpadCelebrities).admin)): return else: location = '/%s' % restrictedinfo non_restricted_url = self.getNonRestrictedURL(request) if non_restricted_url is not None: location += '?production=%s' % urllib.quote(non_restricted_url) request.response.setResult('') request.response.redirect(location, temporary_if_possible=True) # Quash further traversal. request.setTraversalStack([])
def maybeRestrictToTeam(self, request): restrict_to_team = config.launchpad.restrict_to_team if not restrict_to_team: return restrictedlogin = '******' restrictedinfo = '+restricted-info' # Always allow access to +restrictedlogin and +restrictedinfo. traversal_stack = request.getTraversalStack() if (traversal_stack == [restrictedlogin] or traversal_stack == [restrictedinfo]): return principal = request.principal team = getUtility(IPersonSet).getByName(restrict_to_team) if team is None: raise AssertionError( 'restrict_to_team "%s" not found' % restrict_to_team) elif not ITeam.providedBy(team): raise AssertionError( 'restrict_to_team "%s" is not a team' % restrict_to_team) if IUnauthenticatedPrincipal.providedBy(principal): location = '/%s' % restrictedlogin else: # We have a team we can work with. user = IPerson(principal) if (user.inTeam(team) or user.inTeam(getUtility(ILaunchpadCelebrities).admin)): return else: location = '/%s' % restrictedinfo non_restricted_url = self.getNonRestrictedURL(request) if non_restricted_url is not None: location += '?production=%s' % urllib.quote(non_restricted_url) request.response.setResult('') request.response.redirect(location, temporary_if_possible=True) # Quash further traversal. request.setTraversalStack([])
def create(cls, member, team, reviewer, old_status, new_status, last_change_comment=None): if not ITeam.providedBy(team): raise TypeError('team must be ITeam: %s' % repr(team)) if not IPerson.providedBy(reviewer): raise TypeError('reviewer must be IPerson: %s' % repr(reviewer)) if old_status not in TeamMembershipStatus: raise TypeError("old_status must be TeamMembershipStatus: %s" % repr(old_status)) if new_status not in TeamMembershipStatus: raise TypeError("new_status must be TeamMembershipStatus: %s" % repr(new_status)) metadata = { 'reviewer': reviewer.id, 'old_status': old_status.name, 'new_status': new_status.name, 'last_change_comment': last_change_comment, } return super(MembershipNotificationJob, cls).create( minor_person=member, major_person=team, metadata=metadata)