fix: assign_permissions 删除逻辑对齐 get_user_permissions 查询逻辑 — 公司定制+全局模板一起替换
This commit is contained in:
@ -130,13 +130,20 @@ class PermissionService:
|
||||
|
||||
session = db.session
|
||||
try:
|
||||
# 1. 删除该角色+该公司的旧权限(只删同公司的,不影响全局模板和其他公司)
|
||||
# 1. 删除该角色的旧权限
|
||||
# 删除逻辑需与 get_user_permissions 的查询逻辑对齐:
|
||||
# - company_name 为空 → 删 company_name IS NULL OR ''(超管/全局模板)
|
||||
# - company_name 有值 → 删 公司定制 + 全局模板(确保能完整替换)
|
||||
if company_name:
|
||||
old_perms = SysRolePermission.query.filter_by(
|
||||
role_code=role_code, company_name=company_name
|
||||
old_perms = SysRolePermission.query.filter(
|
||||
SysRolePermission.role_code == role_code,
|
||||
or_(
|
||||
SysRolePermission.company_name == company_name,
|
||||
SysRolePermission.company_name.is_(None),
|
||||
SysRolePermission.company_name == '',
|
||||
)
|
||||
).all()
|
||||
else:
|
||||
# 公司为空时兼容旧逻辑:删除 company_name 为 NULL 的旧权限
|
||||
old_perms = SysRolePermission.query.filter(
|
||||
SysRolePermission.role_code == role_code,
|
||||
or_(
|
||||
|
||||
Reference in New Issue
Block a user