thực hiện phân quyền admin giáo viên và học sinh xong

This commit is contained in:
2026-04-01 19:26:47 +07:00
parent 8546d41a26
commit 386871bd4a
14 changed files with 796 additions and 37 deletions
@@ -0,0 +1,49 @@
"""add role and status to users
Revision ID: 0002_add_role_status
Revises: 0001_initial_schema
Create Date: 2026-04-01
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
# revision identifiers, used by Alembic.
revision = "0002_add_role_status"
down_revision = "0001"
branch_labels = None
depends_on = None
user_role = postgresql.ENUM("admin", "teacher", "student", name="user_role")
user_status = postgresql.ENUM("pending", "approved", "rejected", name="user_status")
def upgrade() -> None:
user_role.create(op.get_bind(), checkfirst=True)
user_status.create(op.get_bind(), checkfirst=True)
op.add_column(
"users",
sa.Column(
"role",
sa.Enum("admin", "teacher", "student", name="user_role"),
nullable=False,
server_default="student",
),
)
op.add_column(
"users",
sa.Column(
"status",
sa.Enum("pending", "approved", "rejected", name="user_status"),
nullable=False,
server_default="pending",
),
)
def downgrade() -> None:
op.drop_column("users", "status")
op.drop_column("users", "role")
user_role.drop(op.get_bind(), checkfirst=True)
user_status.drop(op.get_bind(), checkfirst=True)