felicity-lims/felicity/apps/user/abstract.py
Aurthur Musendame ad14d5f12f iter 2 done
2024-07-23 22:30:01 +02:00

32 lines
1.2 KiB
Python
Executable file

from datetime import datetime
from sqlalchemy import Boolean, Column, DateTime, Integer, String
from sqlalchemy.ext.declarative import declared_attr
from felicity.apps.abstract import AuditUser
class AbstractBaseUser(AuditUser):
__abstract__ = True
first_name = Column(String, index=True)
last_name = Column(String, index=True)
email = Column(String, unique=True, index=True, nullable=False)
mobile_phone = Column(String, nullable=True)
business_phone = Column(String, nullable=True)
user_name = Column(String, unique=True, index=True, nullable=False)
hashed_password = Column(String, nullable=False)
login_retry = Column(Integer)
is_blocked = Column(Boolean(), default=False)
avatar = Column(String, nullable=True)
bio = Column(String, nullable=True)
default_route = Column(Boolean(), nullable=True)
is_active = Column(Boolean(), default=True)
is_superuser = Column(Boolean(), default=False)
@property
def has_password(self):
return True if self.hashed_password else False
@property
def full_name(self):
return f"{self.first_name} {self.last_name}"