fix: 全局权限码 crossDomain/global:cross_company_op 强制存为 company_name='',防止按公司隔离失效

This commit is contained in:
yueli
2026-07-17 15:50:06 +08:00
parent 266a0e011f
commit de2d13fa68

View File

@ -160,16 +160,21 @@ class PermissionService:
unique_codes = set(permissions)
all_menu_codes = {res[0] for res in session.query(SysMenu.code).all()}
# 全局权限码 — 不按公司隔离,始终写入 company_name=''
GLOBAL_CODES = {'crossDomain', 'global:cross_company_op'}
new_records = []
for code in unique_codes:
if not code: continue
p_type = 'menu' if code in all_menu_codes else 'element'
# 全局权限码强制 company_name='',确保跨公司生效
target_company = '' if code in GLOBAL_CODES else company_name
new_records.append(SysRolePermission(
role_code=role_code,
target_code=code,
type=p_type,
company_name=company_name # ★ 存储公司标识
company_name=target_company
))
if new_records: