Beispiel #1
0
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
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #4
0
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"))