Example #1
0
def token_POST():
    errors = email_password_schema.validate(request.json)

    if errors:
        return build_400_error_response(errors)

    parsed_schema = sign_up_schema.dump(request.json)

    user = get_user_by_email(parsed_schema["email"])

    if not user:
        abort(404)

    if not verify_password(user.password, parsed_schema["password"]):
        return build_400_error_response({
            "password": [
                "Incorrect password.",
            ],
        })

    if not user.active:
        return build_400_error_response({
            "email": [
                "This email has not been verified.",
            ],
        })

    return jsonify(
        access_token=create_fresh_user_access_token(user),
        refresh_token=create_user_refresh_token(user),
        user_id=str(user.id),
    ), 200
Example #2
0
def users_user_email_POST(user, **_):
    errors = email_schema.validate(request.json)

    if errors:
        return build_400_error_response(errors)

    parsed_schema = email_schema.dump(request.json)

    if get_user_by_email(parsed_schema["email"]):
        return build_400_error_response({
            "email": [
                "There is already an account with this email.",
            ],
        })

    updated_user = update_user_email(user, parsed_schema["email"])

    send_verification_email(updated_user)

    return "", 204
Example #3
0
def users_user_password_POST(user, **_):
    errors = password_schema.validate(request.json)

    if errors:
        return build_400_error_response(errors)

    parsed_schema = password_schema.dump(request.json)

    update_user_password(user, parsed_schema["password"])

    return "", 204
Example #4
0
def reset_password_token_POST(token):
    errors = password_schema.validate(request.json)

    if errors:
        return build_400_error_response(errors)

    user = get_user_from_password_reset_token(token)

    if not user:
        return build_400_error_response({
            "token": [
                "Invalid token.",
            ],
        })

    parsed_schema = password_schema.dump(request.json)

    update_user_password(user, parsed_schema["password"])

    return "", 204
Example #5
0
def verify_token_POST(token):
    user = get_user_from_verification_token(token)

    if not user:
        return build_400_error_response({
            "token": [
                "Invalid token.",
            ],
        })

    activate_user(user)

    return "", 204
Example #6
0
def verify_POST():
    errors = email_schema.validate(request.json)

    if errors:
        return build_400_error_response(errors)

    parsed_schema = email_schema.dump(request.json)

    user = get_user_by_email(parsed_schema["email"])

    if not user:
        abort(404)

    if user.active:
        return build_400_error_response({
            "email": [
                "This email has already been verified.",
            ],
        })

    send_verification_email(user)

    return "", 204
Example #7
0
def token_refresh_GET():
    user = get_user_by_auth_id(get_jwt_identity())

    if not user:
        return build_400_error_response({
            "token": [
                "Invalid token.",
            ],
        })

    return jsonify(
        access_token=create_user_access_token(user),
        user_id=str(user.id),
    ), 200
Example #8
0
def index_POST():
    errors = contact_schema.validate(request.json)

    if errors:
        return build_400_error_response(errors)

    parsed_schema = contact_schema.dump(request.json)

    send_contact_emails(
        parsed_schema["email"],
        parsed_schema["subject"],
        parsed_schema["message"],
    )

    return "", 204
Example #9
0
def sign_up_POST():
    errors = sign_up_schema.validate(request.json)

    if errors:
        return build_400_error_response(errors)

    parsed_schema = sign_up_schema.dump(request.json)

    if get_user_by_email(parsed_schema["email"]):
        return build_400_error_response({
            "email": [
                "There is already an account with this email.",
            ],
        })

    user = save_new_user(
        parsed_schema["name"],
        parsed_schema["email"],
        parsed_schema["password"],
    )

    send_verification_email(user)

    return "", 201
Example #10
0
def reset_password_POST():
    errors = email_schema.validate(request.json)

    if errors:
        return build_400_error_response(errors)

    parsed_schema = email_schema.dump(request.json)

    user = get_user_by_email(parsed_schema["email"])

    if not user:
        abort(404)

    send_password_reset_email(user)

    return "", 204
Example #11
0
def expired_token_loader(_):
    return build_400_error_response(messages={
        "token": [
            "Token expired.",
        ],
    })
Example #12
0
def needs_fresh_token_loader():
    return build_400_error_response(messages={
        "token": [
            "Needs fresh token.",
        ],
    })
Example #13
0
def invalid_token_loader(_):
    return build_400_error_response(messages={
        "token": [
            "Invalid token.",
        ],
    })