63 lines
2.0 KiB
Python
63 lines
2.0 KiB
Python
from sqlalchemy import Column, Integer, String, TIMESTAMP, TEXT, VARCHAR
|
|
from datetime import datetime, timezone
|
|
from . import Base
|
|
|
|
class Account_User(Base):
|
|
__tablename__ = 'portal_user'
|
|
__table_args__ = {"schema": "public"}
|
|
|
|
id = Column(Integer, autoincrement=True, primary_key=True, unique=True)
|
|
username = Column(String(50))
|
|
account_number = Column(String(32))
|
|
house_number = Column(String(32))
|
|
email = Column(VARCHAR(350))
|
|
password_hash = Column(TEXT)
|
|
member_since = Column(TIMESTAMP(timezone=True), default=lambda: datetime.now(timezone.utc))
|
|
last_seen = Column(TIMESTAMP(timezone=True), default=lambda: datetime.now(timezone.utc))
|
|
password_reset_token = Column(TEXT, nullable=True)
|
|
password_reset_expires = Column(TIMESTAMP(timezone=True), nullable=True)
|
|
admin = Column(Integer)
|
|
admin_role = Column(Integer)
|
|
confirmed = Column(Integer)
|
|
active = Column(Integer, default=1)
|
|
user_id = Column(Integer, nullable=True) # References Customer_Customer.id
|
|
|
|
def __init__(self,
|
|
username,
|
|
account_number,
|
|
house_number,
|
|
password_hash,
|
|
member_since,
|
|
email,
|
|
last_seen,
|
|
admin,
|
|
admin_role,
|
|
confirmed,
|
|
active=1,
|
|
user_id=None,
|
|
):
|
|
self.username = username
|
|
self.account_number = account_number
|
|
self.house_number = house_number
|
|
self.password_hash = password_hash
|
|
self.member_since = member_since
|
|
self.email = email
|
|
self.last_seen = last_seen
|
|
self.admin = admin
|
|
self.admin_role = admin_role
|
|
self.confirmed = confirmed
|
|
self.active = active
|
|
self.user_id = user_id
|
|
|
|
def is_authenticated(self):
|
|
return True
|
|
|
|
def is_active(self):
|
|
return True
|
|
|
|
def is_anonymous(self):
|
|
return False
|
|
|
|
def get_id(self):
|
|
return str(self.id)
|