-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflask_app.py
More file actions
81 lines (67 loc) · 2.64 KB
/
flask_app.py
File metadata and controls
81 lines (67 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import flask
import database
import os
import secrets
from werkzeug.security import check_password_hash
app = flask.Flask("__main__")
app.secret_key = secrets.token_hex(16)
@app.route("/", methods=["POST", "GET"])
def main():
returnvalue = ""
logged = flask.session.get("username")
roles = database.FetchUserRoles(logged)
if flask.request.method == "POST":
if "username" in flask.request.form:
inputfromUser = flask.request.form["username"]
returnvalue = database.FetchUsers(inputfromUser)
else:
returnvalue = ""
if (
"makeUser" in flask.request.form
and "makepassword" in flask.request.form
and "role" in flask.request.form
):
name2Create = flask.request.form["makeUser"]
pass2Create = flask.request.form["makepassword"]
role = flask.request.form["role"]
database.AddNewUser(name2Create, pass2Create)
database.AssignRole(name2Create, role)
return flask.render_template(
"main.html", loggedIn=logged, returnedName=returnvalue, roles=roles
)
# another return if other one fails when we create user
return flask.render_template(
"main.html", loggedIn=logged, roles=roles, returnedName=returnvalue
)
@app.route("/login", methods=["POST", "GET"])
def login():
sesh = flask.session
if flask.request.method == "POST":
if "username" in flask.request.form and "password" in flask.request.form:
username = flask.request.form["username"]
password = flask.request.form["password"]
answer = database.FetchUsers(username)
print(answer)
if answer != None:
if answer[1] == username and check_password_hash(answer[2], password):
flask.session["username"] = username # put username into username
flask.session["roles"] = database.FetchUserRoles(
username
) # put roles into the session
return flask.redirect(flask.url_for("main"))
else:
pass
if "logout" in flask.request.form:
print("aaaaa")
return flask.redirect("/logout")
print(flask.session)
return flask.render_template("login.html", session=sesh)
@app.route("/logout", methods=["POST", "GET"])
def logout():
if flask.request.method == "GET":
flask.session.pop("username", None)
flask.session.pop("roles", None)
flask.session.clear()
return flask.redirect(flask.url_for("main"))
# TODo MAYBE ADD WEBSOCKET CHATROOM
app.run(debug=True)