角色字段修改

master
zc 5 months ago
parent b479d8face
commit e2ad6a5b05
  1. 39
      packages/dbgpt-system/src/dbgpt_system/sys_role/controller.py
  2. 26
      packages/dbgpt-system/src/dbgpt_system/sys_role/role.py
  3. 7
      packages/dbgpt-system/src/dbgpt_system/sys_role/role_db.py

@ -18,7 +18,7 @@ role_menu_dao = RoleMenuDao()
@router.get("/list",response_model=Result)
async def select_role_list(
role_query: RoleQuery = Depends(),
#user_info: UserRequest = Depends(get_user_from_headers)
user_info: UserRequest = Depends(get_user_from_headers)
):
res = roleDao.select_role_page(role_query)
@ -30,7 +30,7 @@ async def select_role_list(
"""
@router.get("/list_auth",response_model=Result)
async def select_role_list(
#user_info: UserRequest = Depends(get_user_from_headers)
user_info: UserRequest = Depends(get_user_from_headers)
):
res = roleDao.select_role_list_auth()
@ -43,7 +43,7 @@ async def select_role_list(
@router.get("/{role_id}")
async def select_role_details(role_id: int):
try:
#user_info: UserRequest = Depends(get_user_from_headers)
user_info: UserRequest = Depends(get_user_from_headers)
return Result.succ(roleDao.select_role_details(role_id))
except Exception as ex:
return Result.failed( msg=f"query role error: {ex}")
@ -52,7 +52,7 @@ async def select_role_details(role_id: int):
@router.post("/create")
async def create_role( role:RoleCreate,
#user_info: UserRequest = Depends(get_user_from_headers)
user_info: UserRequest = Depends(get_user_from_headers)
):
try:
# 验证账号是否已存在
@ -62,10 +62,8 @@ async def create_role( role:RoleCreate,
is_name = roleDao.check_role_name_exists(role.name)
if is_name:
return Result.failed( msg="角色名称已存在")
#role.creator = user_info.user_id
role.creator = 1
#role.updater = user_info.user_id
role.updater = 1
role.creator = user_info.user_id
role.updater = user_info.user_id
return Result.succ(roleDao.create(role))
except Exception as ex:
print(ex)
@ -73,7 +71,7 @@ async def create_role( role:RoleCreate,
@router.put("/update")
async def update_role(role:RoleUpdate,
#user_info: UserRequest = Depends(get_user_from_headers)
user_info: UserRequest = Depends(get_user_from_headers)
):
try:
# 验证账号是否已存在
@ -83,8 +81,7 @@ async def update_role(role:RoleUpdate,
is_name = roleDao.check_role_name_exists(role.name)
if is_name:
return Result.failed(msg="角色名称已存在")
#role.updater = user_info.user_id
role.updater = 1
role.updater = user_info.user_id
return Result.succ( roleDao.update(role))
except Exception as ex:
print(ex)
@ -93,9 +90,8 @@ async def update_role(role:RoleUpdate,
@router.put("/update/{role_id}/{status}")
async def update_role_status(role_id: int,status: str ):
try:
#user_info: UserRequest = Depends(get_user_from_headers)
#return Result.succ(roleDao.update_status(role_id, status,user_info))
return Result.succ(roleDao.update_status(role_id, status,1))
user_info: UserRequest = Depends(get_user_from_headers)
return Result.succ(roleDao.update_status(role_id, status,user_info.user_id))
except Exception as ex:
print(ex)
return Result.failed(msg=f"update role error: {ex}")
@ -104,9 +100,8 @@ async def update_role_status(role_id: int,status: str ):
@router.delete("/delete/{role_id}")
async def delete_role(role_id:int):
try:
#user_info: UserRequest = Depends(get_user_from_headers)
#return Result.succ(roleDao.delete_role(role_id,user_info))
return Result.succ(roleDao.delete_role(role_id,1))
user_info: UserRequest = Depends(get_user_from_headers)
return Result.succ(roleDao.delete_role(role_id,user_info.user_id))
except Exception as ex:
print(ex)
return Result.failed(msg=f"update role error: {ex}")
@ -116,7 +111,10 @@ async def delete_role(role_id:int):
获取角色绑定的菜单列表
"""
@router.get("/role_menu/{role_id}", response_model=Result)
async def get_role_menus(role_id: int):
async def get_role_menus(
role_id: int,
user_info: UserRequest = Depends(get_user_from_headers)
):
"""获取角色绑定的菜单ID列表(用于回显)"""
try:
result = role_menu_dao.get_role_menus(role_id)
@ -130,7 +128,7 @@ async def get_role_menus(role_id: int):
@router.post("/save_role_menu", response_model=Result)
async def save_role_menus(
request: RoleMenuRequest,
# user_info: UserRequest = Depends(get_user_from_headers)
user_info: UserRequest = Depends(get_user_from_headers)
):
"""保存角色菜单绑定关系(全量覆盖)"""
try:
@ -142,8 +140,7 @@ async def save_role_menus(
if invalid_menus:
return Result.failed(msg=f"以下菜单无效或已被删除: {invalid_menus}")
# user_id = user_info.user_id
user_id = "1" # 测试用,实际应从认证信息获取
user_id = user_info.user_id
success = role_menu_dao.save_role_menus(role_id, menu_ids, user_id)
return Result.succ(success)
except Exception as e:

@ -15,15 +15,6 @@ class RoleBase(DBGPTBaseModel):
name: Optional[str] = Field(None, description="角色名称", max_length=30)
code: Optional[str] = Field(None, description="角色权限字符串", max_length=100)
sort: Optional[int] = Field(None, description="显示顺序")
data_scope: Optional[int] = Field(
1,
description="数据范围(1:全部 2:自定 3:本部门 4:本部门及以下)"
)
data_scope_dept_ids: Optional[str] = Field(
"",
description="数据范围(指定部门数组)",
max_length=500
)
status: Optional[int] = Field(0, description="角色状态(0正常 1停用)")
remark: Optional[str] = Field(None, description="备注", max_length=500)
creator: Optional[str] = Field("", description="创建者", max_length=64)
@ -57,11 +48,6 @@ class RoleCreate(RoleBase):
raise ValueError("角色编码必须是有效的标识符(字母/数字/下划线)")
return v.lower()
@field_validator('data_scope')
def validate_data_scope(cls, v: int) -> int:
if v not in {1, 2, 3, 4}:
raise ValueError("数据范围必须是1-4的整数")
return v
class RoleUpdate(RoleBase):
@ -143,18 +129,6 @@ class RoleEntity(Model):
nullable=False,
comment="显示顺序"
)
data_scope = Column(
Integer,
nullable=False,
server_default=text("1"),
comment="数据范围(1:全部 2:自定 3:本部门 4:本部门及以下)"
)
data_scope_dept_ids = Column(
String(500),
nullable=False,
server_default=text("''"),
comment="数据范围(指定部门数组)"
)
status = Column(
Integer,
nullable=False,

@ -76,7 +76,6 @@ class RoleDao(BaseDao):
"name": role.name,
"code": role.code,
"sort": role.sort,
"data_scope": role.data_scope,
"status": role.status,
"remark": role.remark,
"creator": role.creator,
@ -130,8 +129,6 @@ class RoleDao(BaseDao):
name=role.name,
code=role.code,
sort=role.sort if role.sort else 0,
data_scope=role.data_scope,
data_scope_dept_ids=role.data_scope_dept_ids or "",
status=role.status if role.status is not None else 0,
remark=role.remark or "",
creator=role.creator or "1", # 可根据实际替换
@ -165,10 +162,6 @@ class RoleDao(BaseDao):
role_entity.code = role.code
if role.sort is not None:
role_entity.sort = role.sort
if role.data_scope is not None:
role_entity.data_scope = role.data_scope
if role.data_scope_dept_ids is not None:
role_entity.data_scope_dept_ids = role.data_scope_dept_ids
if role.remark is not None:
role_entity.remark = role.remark

Loading…
Cancel
Save