-
Notifications
You must be signed in to change notification settings - Fork 1
/
users.py
61 lines (52 loc) · 1.66 KB
/
users.py
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
from db import db
from flask import session
from werkzeug.security import check_password_hash, generate_password_hash
def login(username,password):
sql = "SELECT password, id FROM users WHERE username=:username"
result = db.session.execute(sql, {"username":username})
user = result.fetchone()
if user == None:
return False
else:
if check_password_hash(user[0],password):
session["user_id"] = user[1]
session['logged_in'] = True
if level()==1:
session["admin"] = True
print(session["admin"])
else:
session["admin"] = False
return True
else:
return False
def logout():
del session["user_id"]
session['logged_in'] = False
session["admin"] = False
def register(username,password):
hash_value = generate_password_hash(password)
try:
sql = "INSERT INTO users (username,password,user_level) VALUES (:username,:password,0)"
db.session.execute(sql, {"username":username,"password":hash_value})
db.session.commit()
except:
return False
return login(username,password)
def user_id():
return session.get("user_id",0)
def get_username():
id = user_id()
if id == 0:
return False
sql = "SELECT username FROM users WHERE id=:id"
result = db.session.execute(sql, {"id":id})
name = result.fetchone()[0]
return name
def level():
id = user_id()
if id == 0:
return False
sql = "SELECT user_level FROM users WHERE id=:id"
result = db.session.execute(sql, {"id":id})
level = result.fetchone()[0]
return level