forked from serhii-korobchenko/Python_Web_Team2_project
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathusers.py
More file actions
41 lines (29 loc) · 936 Bytes
/
users.py
File metadata and controls
41 lines (29 loc) · 936 Bytes
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
from db import db_session
import bcrypt
import models
def create_user(email, password, nick):
hash = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt(rounds=10))
user = models.User(username=nick, email=email, hash=hash)
db_session.add(user)
db_session.commit()
return user
def login(email, password):
user = find_by_email(email)
if not user:
return None
if not bcrypt.checkpw(password.encode('utf-8'), user.hash):
return None
return user
def find_by_email(email):
user = db_session.query(models.User).filter(models.User.email == email).first()
db_session.close()
return user
def set_token(user, token):
user.token_cookie = token
db_session.commit()
db_session.close()
def get_user_by_token(token):
user = db_session.query(models.User).filter(models.User.token_cookie == token).first()
if not user:
return None
return user