def publishTraverse(self, request, name): if getUtility(IPortalRegistration).authorizePrincipal(name): self.authorized = True IStatusMessage(request).add(_("Authorization completed.")) else: IStatusMessage(request).add( _("Authorization code is invalid."), 'warning') return self
def selectButtonHandler(self, action): data, errors = self.extractData() if not data['principal']: IStatusMessage(self.request).add( _('Please select user.'), 'warning') else: self.notification.subscribe(data['principal']) IStatusMessage(self.request).add(_('User has been subscribed.')) self.redirect('.')
def authorize(self, action): data, errors = self.extractData() if errors: IStatusMessage(self.request).add(self.formErrorsMessage, 'error') else: if getUtility(IPortalRegistration).authorizePrincipal(data['code']): self.redirect( u'%s/login.html'%absoluteURL(getSite(), self.request)) IStatusMessage(self.request).add(_("Authorization completed.")) else: IStatusMessage(self.request).add( _("Authorization code is invalid."), 'warning')
def update(self): request = self.request context = self.context auth = getUtility(IAuthentication) if 'form.button.authorize' in request: for authcode in request.get('authcodes', ()): context.authorizePrincipal(authcode) IStatusMessage(request).add( _('Principals have been authorized.')) elif 'form.button.resend' in request: for authcode in request.get('authcodes', ()): try: principal = auth.getPrincipal( context.principalByAuthcode(authcode)) except PrincipalLookupError: continue email = IMailAddress(principal, None) if email is not None: template = getMultiAdapter( (principal, authcode, request), IMailAuthorizationTemplate) template.send( (formataddr((principal.title, email.address)),)) IStatusMessage(request).add( _('Authorization information has been sent.')) principals = [] for pid, authcode in context.listAuthorizations(): try: principals.append( {'pid': pid, 'title': auth.getPrincipal(pid).title, 'authcode': authcode}) except: principals.append( {'pid': pid, 'title': pid, 'authcode': authcode}) self.principals = principals super(Authorizations, self).update()
def update(self): self.notification = RegistrationNotification(getSite()) super(NotificationsForm, self).update() request = self.request if 'form.unsubscribe' in request: principals = request.get('form.principals', ()) for pid in principals: self.notification.unsubscribe(pid) if principals: IStatusMessage(request).add( _('Selected users have been unsubscribed.')) principals = [] auth = getUtility(IAuthentication) for pid in self.notification.getSubscribers(getSite()): try: principal = auth.getPrincipal(pid) except PrincipalLookupError: continue profile = IPersonalProfile(principal) principals.append( (profile.title, {'id': pid, 'title': profile.title})) principals.sort() self.principals = [info for _t, info in principals]
def authorize(self, action): data, errors = self.extractData() if errors: IStatusMessage(self.request).add(self.formErrorsMessage, 'error') else: principal = getPrincipalByLogin(data['login']) if principal is None: IStatusMessage(self.request).add( _("Can't find user with this login."), 'warning') else: authcode = getUtility( IPortalRegistration).authcodeForPrincipal(principal.id) if authcode is not None: email = IMailAddress(principal, None) if email is not None: template = getMultiAdapter( (principal, authcode, self.request), IMailAuthorizationTemplate) template.send( (formataddr((principal.title, email.address)),)) IStatusMessage(self.request).add( _("Authorization has been sent."))