46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
from sqlalchemy import Column, String, UUID, ForeignKey, UniqueConstraint
|
|
|
|
from pillar_tool.db.base_model import Base
|
|
|
|
|
|
|
|
class User(Base):
|
|
__tablename__ = 'pillar_tool_user'
|
|
id = Column(UUID, primary_key=True)
|
|
username = Column(String, nullable=False)
|
|
pw_hash = Column(String, nullable=False)
|
|
pw_salt = Column(String, nullable=False)
|
|
email = Column(String, nullable=True)
|
|
|
|
__table_args__ = (
|
|
UniqueConstraint('username', name='pillar_tool_user_unique_constraint_username'),
|
|
)
|
|
|
|
class Role(Base):
|
|
__tablename__ = 'pillar_tool_role'
|
|
id = Column(UUID, primary_key=True)
|
|
name = Column(String, nullable=False)
|
|
|
|
__table_args__ = (
|
|
UniqueConstraint('name', name='pillar_tool_role_unique_constraint_name'),
|
|
)
|
|
|
|
class Permission(Base):
|
|
__tablename__ = 'pillar_tool_permission'
|
|
id = Column(UUID, primary_key=True)
|
|
name = Column(String, nullable=False)
|
|
|
|
__table_args__ = (
|
|
UniqueConstraint('name', name='pillar_tool_permission_unique_constraint_name'),
|
|
)
|
|
|
|
class RolePermission(Base):
|
|
__tablename__ = 'pillar_tool_role_permission'
|
|
role_id = Column(UUID, ForeignKey("pillar_tool_role.id"), primary_key=True)
|
|
permission_id = Column(UUID, ForeignKey("pillar_tool_permission.id"), primary_key=True)
|
|
|
|
class UserRole(Base):
|
|
__tablename__ = 'pillar_tool_user_role'
|
|
user_id = Column(UUID, ForeignKey("pillar_tool_user.id"), primary_key=True)
|
|
role_id = Column(UUID, ForeignKey("pillar_tool_role.id"), primary_key=True)
|