def login(req): referer = req.args.getfirst("referer", "", str) data = Object(referer=referer, email="") if req.method == "POST": login = Login() login.bind(req.form, req.cfg.login_rounds) ip = "ip" in req.form if login.find(req): do_login(req, login.simple(), ip) if referer: redirect(req, referer) if "admin" in login.rights or "super" in login.rights: redirect(req, "/admin") redirect(req, "/") data.ip = ip data.email = login.email data.error = BAD_LOGIN return generate_page( req, "login.html", data=data, sign_up=req.cfg.login_sign_up, password_link=req.cfg.login_forget_password_link )