fix: 全局权限码 crossDomain/global:cross_company_op 强制存为 company_name='',防止按公司隔离失效
This commit is contained in:
@ -160,16 +160,21 @@ class PermissionService:
|
|||||||
unique_codes = set(permissions)
|
unique_codes = set(permissions)
|
||||||
all_menu_codes = {res[0] for res in session.query(SysMenu.code).all()}
|
all_menu_codes = {res[0] for res in session.query(SysMenu.code).all()}
|
||||||
|
|
||||||
|
# 全局权限码 — 不按公司隔离,始终写入 company_name=''
|
||||||
|
GLOBAL_CODES = {'crossDomain', 'global:cross_company_op'}
|
||||||
|
|
||||||
new_records = []
|
new_records = []
|
||||||
for code in unique_codes:
|
for code in unique_codes:
|
||||||
if not code: continue
|
if not code: continue
|
||||||
p_type = 'menu' if code in all_menu_codes else 'element'
|
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(
|
new_records.append(SysRolePermission(
|
||||||
role_code=role_code,
|
role_code=role_code,
|
||||||
target_code=code,
|
target_code=code,
|
||||||
type=p_type,
|
type=p_type,
|
||||||
company_name=company_name # ★ 存储公司标识
|
company_name=target_company
|
||||||
))
|
))
|
||||||
|
|
||||||
if new_records:
|
if new_records:
|
||||||
|
|||||||
Reference in New Issue
Block a user