36 lines
821 B
Python
36 lines
821 B
Python
from sqlalchemy import Column, Enum, ForeignKey, Integer, Table
|
|
|
|
from database import Base
|
|
|
|
from .enums import Permission
|
|
|
|
# Association table: Role <-> Permission (many-to-many)
|
|
role_permissions = Table(
|
|
"role_permissions",
|
|
Base.metadata,
|
|
Column(
|
|
"role_id",
|
|
Integer,
|
|
ForeignKey("roles.id", ondelete="CASCADE"),
|
|
primary_key=True,
|
|
),
|
|
Column("permission", Enum(Permission), primary_key=True),
|
|
)
|
|
|
|
# Association table: User <-> Role (many-to-many)
|
|
user_roles = Table(
|
|
"user_roles",
|
|
Base.metadata,
|
|
Column(
|
|
"user_id",
|
|
Integer,
|
|
ForeignKey("users.id", ondelete="CASCADE"),
|
|
primary_key=True,
|
|
),
|
|
Column(
|
|
"role_id",
|
|
Integer,
|
|
ForeignKey("roles.id", ondelete="CASCADE"),
|
|
primary_key=True,
|
|
),
|
|
)
|