def token_login(token): """View function that handles passwordless login via a token""" try: user, next = login_by_token(token) except PasswordlessLoginError, e: if e.user: send_login_instructions(e.user, e.next) do_flash(str(e), 'error') return redirect(request.referrer or url_for('login'))
def invite(): if request.method == 'GET': invitations = Invitation.query.filter_by(status=None).all() else: emails = list(request.form.keys()) users = User.query.filter(User.email.in_(emails)).all() invitations = [u.invitation for u in users] for invitation in invitations: send_login_instructions(invitation.user) return render_template('success.html')
def send_login(): """View function that sends login instructions for passwordless login""" form = PasswordlessLoginForm(csrf_enabled=not app.testing) if form.validate_on_submit(): user = _datastore.find_user(**form.to_dict()) if user.is_active(): send_login_instructions(user, form.next.data) do_flash(*get_message('LOGIN_EMAIL_SENT', email=user.email)) else: form.email.errors.append(get_message('DISABLED_ACCOUNT')[0]) return render_template('security/send_login.html', login_form=form, **_ctx('send_login'))