-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodels.py
32 lines (27 loc) · 1.04 KB
/
models.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
from sqlalchemy import Column, Integer, String, Boolean
from database import Base
from Crypto.Hash import SHA256
NAME_MAX = 50
USER_MAX = 120
EMAIL_MAX = 120
PASSWORD_MAX = SHA256.digest_size
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(NAME_MAX))
user = Column(String(USER_MAX), unique=True)
email = Column(String(EMAIL_MAX), unique=True)
password = Column(String(PASSWORD_MAX))
is_admin = Column(Boolean, unique=False, default=False)
def __init__(self, name=None, email=None, username=None, password=None, is_admin=False):
self.name = name
self.user = username
self.email = email
self.password = SHA256.new(data=password.encode('utf-8')).hexdigest()
self.is_admin = is_admin
def __repr__(self):
user_str = ''
if self.is_admin == True:
user_str += '[admin] '
user_str += '<User \"{}\" - {} ({}) : {}>'.format(self.name, self.user, self.email, self.password)
return user_str