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