fix: 修复全局字段权限导致数据显示为空的问题
根因: /permissions/role/<role_code> 接口要求 system_permission, 非管理员角色无法获取自身权限 → 权限数组为空 → 前后端字段全被过滤 修复: - permission.py: 查自己角色不再需要 system_permission, 解除权限死锁 - 5个 inbound API: 恢复完整 field_to_perm 映射, 每个字段均可独立权限管控 - 补齐遗漏字段(qty_inbound/qty_stock/qty_available/request_id/request_no) - buy.vue: 入库表单价格字段加入 hasFormFieldPermission 守卫
This commit is contained in:
@ -53,13 +53,9 @@ def get_current_user_permissions():
|
||||
|
||||
|
||||
def filter_item_by_permissions(item_dict, user_permissions):
|
||||
"""
|
||||
根据用户权限过滤 item 字典,无权限的字段值置为 None
|
||||
"""
|
||||
# 如果用户拥有通配符权限,则不过滤
|
||||
"""根据用户权限过滤字段,无权限的字段值置为 None"""
|
||||
if 'material_list:*' in user_permissions:
|
||||
return item_dict
|
||||
# 字段名到权限码的映射(与前端 permissionMap 保持一致)
|
||||
field_to_perm = {
|
||||
'id': 'material_list:id',
|
||||
'companyName': 'material_list:companyName',
|
||||
@ -74,7 +70,11 @@ def filter_item_by_permissions(item_dict, user_permissions):
|
||||
'generalManual': 'material_list:files',
|
||||
'generalImage': 'material_list:files',
|
||||
'referencePrice': 'material_list:referencePrice',
|
||||
'isEnabled': 'material_list:isEnabled'
|
||||
'isEnabled': 'material_list:isEnabled',
|
||||
'isInspectionRequired': 'material_list:isInspectionRequired',
|
||||
'visibilityLevel': 'material_list:visibilityLevel',
|
||||
'manualLinkRemark': 'material_list:manualLinkRemark',
|
||||
'productImageRemark': 'material_list:productImageRemark',
|
||||
}
|
||||
for field, perm_code in field_to_perm.items():
|
||||
if field in item_dict and perm_code not in user_permissions:
|
||||
|
||||
Reference in New Issue
Block a user