def load_user(user_id): try: return User.get_by_id(user_id) except User.DoesNotExist as exc: app.logger.error("{}".format(exc)) app.logger.error("return None") return None
def register(): """Registration form""" if current_user.is_authenticated: app.logger.error("Shouldn't register when auth") flash("Shouldn't register when auth", "error") return redirect(url_for("index")) if request.method == "POST": # TODO: WTF forms for safety display_name = request.form["display_name"] username = request.form["username"] password = request.form["password"] try: user = User.register(username, password, display_name) except Exception as exc: if exc.args[0] == "too_short": flash("Password too short, minimum length is 3") else: print(exc) else: user.save() app.logger.info("registered new user: {}".format(user.username)) flash("Registered.", "info") return redirect(url_for("login")) return render_template("register.html", **common_vars_tpl)
def login(): """Login using naive db or LDAP (work on it @priest)""" if current_user.is_authenticated: app.logger.error("Shouldn't login when auth") flash("Shouldn't login when auth", "error") return redirect(url_for("devices")) if request.method == "POST": try: user = User.get(User.username == request.form["username"]) except User.DoesNotExist: user = None if user is not None and user.auth(request.form["password"]) is True: login_user(user) app.logger.info("logged in: {}".format(user.username)) flash( "Hello {}! You can now claim and manage your devices.".format( current_user.username ), "success", ) return redirect(url_for("devices")) else: app.logger.info("failed log in: {}".format(request.form["username"])) flash("Invalid credentials", "error") return render_template("login.html", **common_vars_tpl)
def callback(): token = oauth.sso.authorize_access_token() user_info = oauth.sso.parse_id_token(token) if user_info: print(user_info) try: user = User.get(User.username == user_info["preferred_username"]) except User.DoesNotExist: user = None app.logger.warning("no user: {}".format( user_info["preferred_username"])) if user is not None: login_user(user) app.logger.info("logged in: {}".format(user.username)) flash( "Hello {}! You can now claim and manage your devices.".format( current_user.username), "success", ) return redirect(url_for("devices")) else: app.logger.info("failed log in: {}".format( user_info["preferred_username"])) flash("Invalid credentials", "error") return redirect(url_for("login"))