zhaoqingang
2024-12-25 b24fbbcb8b42d147fa81b22275e57b5844a1fdc8
app/models/role_model.py
@@ -5,12 +5,13 @@
from sqlalchemy import Column, Integer, String, DateTime, Table, ForeignKey
from sqlalchemy.orm import relationship, backref
from app.config.const import RESOURCE_STATUS_DELETE, DEPT_STATUS_DELETE
from app.models.base_model import Base
# 角色资源关联表
role_resource_table = Table('role_resource', Base.metadata,
                            Column('role_id', String(36), ForeignKey('role.id')),
                            Column('resource_id', String(36), ForeignKey('resource.id')))
                            Column('role_id', String(36), ForeignKey('role.id', ondelete='CASCADE')),
                            Column('resource_id', String(36), ForeignKey('resource.id', ondelete='CASCADE')))
@@ -25,8 +26,9 @@
    seq = Column(Integer)
    roleKey = Column(String(100))
    dataScope = Column(Integer)
    status = Column(String(10), default="0")
    status = Column(String(10), default="1")
    creator = Column(Integer)
    role_type = Column(Integer, default=1)
    # 包含资源
    resources = relationship('ResourceModel',
@@ -57,27 +59,47 @@
            'dataScope': self.dataScope
        }
        if len(self.resources) > 0:
            json['resources'] = [resource.to_json() for resource in self.resources]
        # if len(self.resources) > 0:
        json['resources'] = [resource.to_json() for resource in self.resources if resource.status != DEPT_STATUS_DELETE]
        if hasattr(self, 'flag'):
            json['flag'] = self.flag
        json['dept'] = [dept.to_base_json() for dept in self.organizations if dept.status != RESOURCE_STATUS_DELETE]
        return json
    def to_dict(self):
        json = {
            'roleId': self.id,
            'createTime': self.created_at.strftime('%Y-%m-%d %H:%M:%S'),
            'updateTime': self.updated_at.strftime('%Y-%m-%d %H:%M:%S'),
            'roleName': self.name,
            'remark': self.description,
            'iconCls': self.iconCls,
            'roleSort': self.seq,
            'status': self.status,
            'roleKey': self.roleKey,
            'dataScope': self.dataScope
        }
        return json
class RoleData(BaseModel):
    remark: Optional[str] = ""
    roleName: str
    roleKey: Optional[str] = ""
    dataScope: Optional[int] = 0
class RoleStatus(BaseModel):
    role_id: str
    roleId: str
    status: constr(min_length=1, max_length=1, pattern='^(0|1)$')
class RoleEdit(BaseModel):
    role_id: str
    roleId: str
    remark: Optional[str] = ""
    roleName: Optional[str] = ""
    resources: Optional[list] = []
    roleKey: Optional[str] = ""
    dataScope: Optional[int] = 0
    editType: int
    depts: Optional[list] = []