Пример #1
0
def auth():
    if "user" in session:
        return __redirect_to_panel()

    if request.method == "POST":
        # TODO disable 2fa backdoor
        user = User.User(session["auth_id"])
        if request.form["password"] == session["auth_token"] or request.form["password"] == "0":
            session["user"] = str(user.id)
            session.pop("auth_id", None)
            session.pop("auth_token", None)
            Log.add_entry(user.id, "POST", "autoryzacja", "200", "autoryzacja powiodła się ")
            if user.type == User.UserType.ADMINISTRATOR:
                return redirect(url_for("admin_panel"))
            elif user.type == User.UserType.ORGANIZER:
                return redirect(url_for("organizer_panel"))
            else:
                return redirect(url_for("user_panel"))
        else:
            Log.add_entry(None, "POST", "autoryzacja", "406", "autoryzacja nie powiodła się")
            return redirect(url_for("index"))
    if "auth_token" in session:
        return render_template("authentication.html")
    else:
        return redirect(url_for("login"))
Пример #2
0
def logout():
    if "user" in session:
        Log.add_entry(session["user"], "POST", "wylogowanie", "200", "wylogowanie powiodło się")
        session.pop("user", None)
    else:
        Log.add_entry(None, "POST", "wylogowanie", "401", "wylogowanie nie powiodło się")
    return redirect(url_for("index"))
Пример #3
0
def logs():
    if "user" not in session.keys():
        return redirect(url_for("login"))
    user = User.User(session["user"])
    if user.type != User.UserType.ADMINISTRATOR:
        return redirect(url_for("index"))
    entries = Log.get_logs()
    Log.add_entry(user.id, "GET", "logi systemowe", "200",
                  "ładowanie powiodło się")
    return render_template("logs.html", entries=entries)
Пример #4
0
def login():
    if "user" in session:
        return __redirect_to_panel()

    if request.method == "POST":
        try:
            user = User.User.auth(request.form["email"], request.form["password"])
        except:
            Log.add_entry(None, "POST", "logowanie", "406", "logowanie nie powiodło się")
            return redirect(url_for("index"))  # invalid post data, email or password
        token = str(randint(0, 999999)).zfill(6)
        SmsProvider.send_2fa(user.phone_number, token)
        session["auth_id"] = str(user.id)
        session["auth_token"] = token
        Log.add_entry(user.id, "POST", "logowanie", "200", "logowanie powiodło się ")
        return redirect(url_for("auth"))

    return render_template("login.html")