Exemple #1
0
def login_mod(req):
    check_login(req)

    login = Login(req.login.id)
    token = do_create_token(req, "/login")

    state = None
    if req.method == "POST":
        check_token(req, req.form.get("token"))
        login.bind(req.form, req.cfg.login_rounds)
        email = login.email if login.email != req.login.email else None
        state = login.pref(req, email=email)

        if 0 < state < 64:
            return generate_page(req, "login/login_mod.html", token=token, item=login, error=state)

        state = 0 if state is None else state
        if email:
            host = "%s (%s)" % (req.remote_host, req.remote_addr)
            send_verify_email(req, login, req.login.email, host=host, browser=req.user_agent)
            state |= REQUEST_FOR_EMAIL
    else:
        email = None
    # endif

    login.get(req)
    req.login = login
    return generate_page(req, "login/login_mod.html", token=token, item=login, state=state, email=email)