diff --git a/inventory-backend/app/services/permission_service.py b/inventory-backend/app/services/permission_service.py index 4ddaf65..9024154 100644 --- a/inventory-backend/app/services/permission_service.py +++ b/inventory-backend/app/services/permission_service.py @@ -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: