Esempio n. 1
0
def reset_password_request():
    if not email_configured():
        flash(
            "Sorry, self-service password resets are not currently available. Please contact an administrator for assistance.",
            "warning",
        )
        return redirect(url_for("auth.login"))
    form = ResetPasswordRequestForm()
    if form.validate_on_submit():
        validemail = validate_email(form.email.data)
        if not validemail:
            return redirect(url_for("auth.reset_password_request"))
        user = User.get_reset_token(validemail)
        if user:
            deliver_auth_link(user.email, user.password_reset_token, "reset")
        db.session.commit()
        flash("Check your email for the instructions to reset your password",
              "info")
        return redirect(url_for("auth.login"))
    return render_template(
        "auth/password_reset.html",
        title="Request Password Reset",
        form=form,
        pwrequest=True,
    )
Esempio n. 2
0
def reset_password(email):
    ensure_server_name()
    user = User.get_reset_token(email)
    if not user:
        raise click.BadParameter(err_msgs["no_such_user"].format(email))
    msg = deliver_auth_link(user.email, user.password_reset_token, "reset")
    db.session.commit()
    print(msg)
Esempio n. 3
0
def test_send_password_reset(app):
    test_token = "testresetpleaseignore"
    with mail.record_messages() as outbox:
        result = deliver_auth_link("*****@*****.**", test_token, "reset")

    assert len(outbox) == 1
    assert outbox[0].subject == "[Natlas] Reset Your Password"
    assert test_token in outbox[0].body
    assert test_token not in result
Esempio n. 4
0
def test_send_invite(app):
    test_token = "testinvitepleaseignore"
    with mail.record_messages() as outbox:
        result = deliver_auth_link("*****@*****.**", test_token, "invite")

    assert len(outbox) == 1
    assert outbox[0].subject == "[Natlas] You've been invited to Natlas!"
    assert test_token in outbox[0].body
    assert test_token not in result
Esempio n. 5
0
def test_invite_no_email(app_no_email):
    test_token = "testinvitepleaseignore"
    email = "*****@*****.**"
    result = deliver_auth_link(email, test_token, "invite")
    assert test_token in result
    assert email not in result
Esempio n. 6
0
def test_password_reset_no_email(app_no_email):
    test_token = "testresetpleaseignore"
    email = "*****@*****.**"
    result = deliver_auth_link(email, test_token, "reset")
    assert test_token in result
    assert email not in result
Esempio n. 7
0
    def deliver_invite(invite):
        from app.auth.email import deliver_auth_link

        return deliver_auth_link(invite.email, invite.token, "invite")