def start(self, context, request, appstruct, **kw): login = appstruct['email'] adapter = request.registry.queryMultiAdapter( (context, request), IUserLocator ) if adapter is None: adapter = DefaultUserLocator(context, request) user = adapter.get_user_by_email(login) if user is not None: principals = find_service(user, 'principals') reset = principals.add_reset(user) reseturl = request.resource_url(reset) email = user.email site = get_site_folder(True) localizer = request.localizer mail_template = site.get_mail_template('reset_password') subject = mail_template['subject'] message = mail_template['template'].format( person=user, user_title=localizer.translate( _(getattr(user, 'user_title', ''))), reseturl=reseturl, lac_title=request.root.title) alert('email', [site.get_site_sender()], [email], {'subject': subject, 'body': message}) return {}
def persona_login(context, request): check_csrf_token(request) email = verify_persona_assertion(request) root = root_factory(request) adapter = request.registry.queryMultiAdapter( (root, request), IUserLocator) if adapter is None: adapter = DefaultUserLocator(root, request) user = adapter.get_user_by_email(email) if user is None: registry = request.registry username = '******' % email principals = find_service(root, 'principals') user = principals.add_user(username, registry=registry) user.email = email performer = registry.content.create('Performer') root['performers'][username] = performer performer.user = user set_acl(performer, [(Allow, user.__oid__, ['yss.edit-profile'])]) location = request.resource_url(performer, 'edit.html') performer.title = email performer.email = email performer.photo_url = persona_gravatar_photo(request, email) performer.age = colander.null performer.sex = user.favorite_genre = None location = request.resource_url(performer, 'edit.html') else: location = request.resource_url(root['performers'][user.__name__]) headers = remember(request, get_oid(user)) request.response.headers.extend(headers) return {'redirect': location, 'success': True}
def start(self, context, request, appstruct, **kw): login = appstruct['email'] adapter = request.registry.queryMultiAdapter( (context, request), IUserLocator ) if adapter is None: adapter = DefaultUserLocator(context, request) user = adapter.get_user_by_email(login) if user is not None: principals = find_service(user, 'principals') reset = principals.add_reset(user) reseturl = request.resource_url(reset) if not user.email: raise ValueError('User does not possess a valid email address.') subject = RESETPW_SUBJECT.format(novaideo_title=request.root.title) localizer = request.localizer message = RESETPW_MESSAGE.format( recipient_title=localizer.translate(_(getattr(user, 'user_title',''))), recipient_first_name=getattr(user, 'first_name', user.name), recipient_last_name=getattr(user, 'last_name',''), reseturl=reseturl, novaideo_title=request.root.title ) mailer_send(subject=subject, recipients=[user.email], body=message) return {}
def start(self, context, request, appstruct, **kw): login = appstruct['email'] adapter = request.registry.queryMultiAdapter((context, request), IUserLocator) if adapter is None: adapter = DefaultUserLocator(context, request) user = adapter.get_user_by_email(login) if user is not None: principals = find_service(user, 'principals') reset = principals.add_reset(user) reseturl = request.resource_url(reset) email = user.email site = get_site_folder(True) localizer = request.localizer mail_template = site.get_mail_template('reset_password') subject = mail_template['subject'] message = mail_template['template'].format( person=user, user_title=localizer.translate( _(getattr(user, 'user_title', ''))), reseturl=reseturl, lac_title=request.root.title) alert('email', [site.get_site_sender()], [email], { 'subject': subject, 'body': message }) return {}
def _login_validator(node, value): adapter = request.registry.queryMultiAdapter((context, request), IUserLocator) if adapter is None: adapter = DefaultUserLocator(context, request) user = adapter.get_user_by_email(value) if user is None: raise colander.Invalid(node, 'No such user %s' % value)
def _login_validator(node, value): adapter = request.registry.queryMultiAdapter( (context, request), IUserLocator ) if adapter is None: adapter = DefaultUserLocator(context, request) user = adapter.get_user_by_email(value) if user is None: raise colander.Invalid(node, 'No such user %s' % value)
def email_validator(node, kw): context = node.bindings['context'] request = node.bindings['request'] adapter = request.registry.queryMultiAdapter( (context, request), IUserLocator ) if adapter is None: adapter = DefaultUserLocator(context, request) user = adapter.get_user_by_email(kw) if user and user is not context: raise colander.Invalid(node, _('${email} email address already in use', mapping={'email': kw}))
def check_user(self): login = self.params('email') password = self.params('password') context = self.context request = self.request adapter = request.registry.queryMultiAdapter((context, request), IUserLocator) if adapter is None: adapter = DefaultUserLocator(context, request) user = adapter.get_user_by_email(login) if user and user.check_password(password) and \ (has_role(user=user, role=('Admin', )) or \ 'active' in getattr(user, 'state', [])): return {'check': True} return {'check': False}
def email_validator(node, kw): context = node.bindings['context'] request = node.bindings['request'] root = getSite() adapter = request.registry.queryMultiAdapter( (context, request), IUserLocator ) if adapter is None: adapter = DefaultUserLocator(context, request) user = adapter.get_user_by_email(kw) preregistrations = [pr for pr in root.preregistrations if getattr(pr, 'email', '') == kw] if (user and user is not context) or preregistrations: raise colander.Invalid(node, _('${email} email address already in use', mapping={'email': kw}))
def check_user(self): login = self.params('email') password = self.params('password') context = self.context request = self.request adapter = request.registry.queryMultiAdapter( (context, request), IUserLocator ) if adapter is None: adapter = DefaultUserLocator(context, request) user = adapter.get_user_by_email(login) if user and user.check_password(password) and \ (has_role(user=user, role=('Admin', )) or \ 'active' in getattr(user, 'state', [])): return {'check': True} return {'check': False}
def validate_user(context, request, appstruct): login = appstruct.get('login') password = appstruct.get('password') adapter = request.registry.queryMultiAdapter((context, request), IUserLocator) if adapter is None: adapter = DefaultUserLocator(context, request) user = adapter.get_user_by_email(login) valid = user and user.check_password(password) and \ (has_role(user=user, role=('Admin', )) or \ 'active' in getattr(user, 'state', [])) headers = None if user and valid: request.session.pop('lac.came_from', None) headers = remember(request, get_oid(user)) request.registry.notify(LoggedIn(login, user, context, request)) return user, valid, headers
def persons_contacted(self): """ Return all contacted persons""" request = get_current_request() adapter = request.registry.queryMultiAdapter( (self, request), IUserLocator ) if adapter is None: adapter = DefaultUserLocator(self, request) result = [] for email in self._email_persons_contacted: user = adapter.get_user_by_email(email) if user is not None: result.append(user) else: result.append(email.split('@')[0].split('+')[0]) return set(result)
def validate_user(context, request, appstruct): login = appstruct.get('login') password = appstruct.get('password') adapter = request.registry.queryMultiAdapter( (context, request), IUserLocator ) if adapter is None: adapter = DefaultUserLocator(context, request) user = adapter.get_user_by_email(login) valid = user and user.check_password(password) and \ (has_role(user=user, role=('Admin', )) or \ 'active' in getattr(user, 'state', [])) headers = None if user and valid: request.session.pop('lac.came_from', None) headers = remember(request, get_oid(user)) request.registry.notify(LoggedIn( login, user, context, request)) return user, valid, headers