mirror of
https://git.victorphan.net/basketballcantho/ten-project.git
synced 2026-08-05 14:03:10 +07:00
thực hiện phân quyền admin giáo viên và học sinh xong
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
from datetime import datetime, timezone
|
||||
import enum
|
||||
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
Enum,
|
||||
Integer,
|
||||
String,
|
||||
Text,
|
||||
@@ -13,6 +16,18 @@ from sqlalchemy.orm import relationship
|
||||
from .database import Base
|
||||
|
||||
|
||||
class UserRole(str, enum.Enum):
|
||||
admin = "admin"
|
||||
teacher = "teacher"
|
||||
student = "student"
|
||||
|
||||
|
||||
class UserStatus(str, enum.Enum):
|
||||
pending = "pending"
|
||||
approved = "approved"
|
||||
rejected = "rejected"
|
||||
|
||||
|
||||
class User(Base):
|
||||
__tablename__ = "users"
|
||||
|
||||
@@ -20,6 +35,8 @@ class User(Base):
|
||||
username = Column(String(64), unique=True, nullable=False, index=True)
|
||||
email = Column(String(255), unique=True, nullable=False, index=True)
|
||||
password_hash = Column(String(255), nullable=False)
|
||||
role = Column(Enum(UserRole, name="user_role"), nullable=False, default=UserRole.student)
|
||||
status = Column(Enum(UserStatus, name="user_status"), nullable=False, default=UserStatus.pending)
|
||||
created_at = Column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), nullable=False)
|
||||
|
||||
# Relationships
|
||||
|
||||
Reference in New Issue
Block a user