Commit c047ec4d authored by David Yang's avatar David Yang

fix: scope problem view permissions to current app

parent cd281496
......@@ -44,7 +44,7 @@
- Grid View 的 `settings.viewAuth` 只控制视图可见性;活动 Grid View 的 `settings.auth` 控制详情字段编辑能力;`settings.disableColumns` 对所有用户始终只读。
- 普通用户遇到缺失 `viewAuth` 的 View 或缺失字段 `auth` 的字段时默认拒绝。系统管理员、系统账号和目标应用自身的“管理”角色可以旁路 View/字段授权,但不能旁路 `disableColumns`。
- 仅从 `user.applications[]` 中 `name` 等于目标应用授权标识的单个应用项读取 `groups`、`roles` 和 `permissions`。不得复制问题整改的 `integrity_risk_manager`,不得合并顶层身份或其它应用授权。
- 仅从 `user.applications[]` 中 `name` 等于目标应用真实稳定标识的单个应用项读取 `groups`、`roles` 和 `permissions`。每个项目必须使用自身应用标识,不得复制其它应用的标识,也不得合并顶层身份或其它应用授权。
- 授权类型只接受 `group`、`role`、`permission`;缺失或不支持的类型按“管理”角色规则处理。
- 从 Grid 打开详情时,活动 Grid View 是唯一字段编辑权限来源;Detail View 只负责字段编排、条件和 `shortTitle`,不得叠加第二套字段权限。
- 没有可访问 Grid View 时不创建兜底 View、不查询记录,并隐藏新增、批量和行操作。只有一个可访问 View 时保留其 key、查询和筛选,但隐藏单项 Tabs 轨道。
......
export const APPLICATION_DISPLAY_NAME = '问题整改';
export const APPLICATION_BASE_PATH = '/problem_rectification_new/';
export const AUTHORIZATION_APPLICATION_NAME = 'integrity_risk_manager';
export const APPLICATION_NAME = 'problem_rectification_new';
export const APPLICATION_BASE_PATH = `/${APPLICATION_NAME}/`;
export const AUTHORIZATION_APPLICATION_NAME = APPLICATION_NAME;
export const THEME_STORAGE_KEY = 'xinyuan_color_theme';
export const ROUTE_TITLES = Object.freeze({
......
import xinyuanLogo from '@/assets/xy-logo-red.png';
import {
APPLICATION_BASE_PATH,
APPLICATION_DISPLAY_NAME,
APPLICATION_NAME,
} from '@/config/application';
import { getApplications } from '@/services/DataService';
import { ExclamationTriangleIcon } from '@/components/AppIcons';
......@@ -18,7 +18,7 @@ import {
} from '@heroui/react';
import { useEffect, useMemo, useState } from 'react';
const CURRENT_APPLICATION_NAME = APPLICATION_BASE_PATH.replace(/^\/+|\/+$/g, '');
const CURRENT_APPLICATION_NAME = APPLICATION_NAME;
function unwrapApplications(response) {
const candidates = [
......
......@@ -64,11 +64,11 @@
- `settings.shortTitle = true` 仅隐藏列表中的 `title` 展示列,不删除记录标题数据,也不改变标题字段参与的关键词查询、视图排序、详情标题或权限判断;标题列原本承载的部门明细数量 / 展开、延期申请阶段 / 详情和锁定状态迁移到固定的“问题动态”上下文列,详情、延期申请、锁定、复制和删除继续由固定行操作列提供
- `settings.quickSelect` 决定列表是否展示勾选列,用于批量推送、删除等操作
- `settings.restrictions` 与 `settings.filters.conditions` 共同决定该视图下可见的数据范围
- Grid 视图的 `settings.viewAuth` 决定当前用户是否能看到该视图;普通用户未配置 `viewAuth` 时默认不可见,仅系统管理员和问题整改历史应用 `integrity_risk_manager` 的“管理”角色可见。全部 Grid 视图均无权限时不得生成绕过授权的兜底视图、查询记录或展示新增/批量/行操作入口
- Grid 视图的 `settings.viewAuth` 决定当前用户是否能看到该视图;普通用户未配置 `viewAuth` 时默认不可见,仅系统管理员和问题整改应用 `problem_rectification_new` 自身的“管理”角色可见。全部 Grid 视图均无权限时不得生成绕过授权的兜底视图、查询记录或展示新增/批量/行操作入口
- `type = "detail"` 的视图用于详情抽屉字段编排,按 `columns` 顺序渲染字段;当前详情视图 `settings.shortTitle = true` 时,同时隐藏弹框 Header 中的记录标题和字段区中的 `title` 字段,未配置或为 `false` 时正常显示,切换详情视图页签后立即按新视图更新
- 表格 Tab 的 `settings.auth` 按字段路径控制详情弹框内对应字段是否允许编辑,规则结构与多维表格一致:`field` 使用 `title` 或 `metadata.<fieldName>`,`type` 支持 `group`、`role`、`permission`,授权值分别从 `groups`、`roles`、`permissions` 读取;普通用户遇到未配置 `auth` 的字段时默认只读
- 表格 Tab 的 `settings.disableColumns` 始终优先,命中后字段保留展示但进入只读状态,即使系统管理员或“管理”角色也不得编辑;未命中时,系统管理员、系统账号和问题整改历史应用 `integrity_risk_manager` 的“管理”角色旁路字段 `auth`
- 普通用户只使用 `applications[]` 中 `name = "integrity_risk_manager"` 的用户组、角色和权限进行匹配,不合并顶层用户组或其他应用授权。多维表格配置转换只接受 `group`、`role`、`permission`,缺失或其他类型均按“管理”角色处理。进入详情弹框后,当前 Grid Tab 是唯一的字段编辑权限来源,Detail 视图只负责字段编排、条件显示与 `shortTitle`,两套字段权限不得叠加。切换 Grid Tab 后,详情弹框必须立即改用新 Tab 的权限配置
- 表格 Tab 的 `settings.disableColumns` 始终优先,命中后字段保留展示但进入只读状态,即使系统管理员或“管理”角色也不得编辑;未命中时,系统管理员、系统账号和问题整改应用 `problem_rectification_new` 自身的“管理”角色旁路字段 `auth`
- 普通用户只使用 `applications[]` 中 `name = "problem_rectification_new"` 的用户组、角色和权限进行匹配,不合并顶层用户组或其他应用授权。多维表格配置转换只接受 `group`、`role`、`permission`,缺失或其他类型均按“管理”角色处理。进入详情弹框后,当前 Grid Tab 是唯一的字段编辑权限来源,Detail 视图只负责字段编排、条件显示与 `shortTitle`,两套字段权限不得叠加。切换 Grid Tab 后,详情弹框必须立即改用新 Tab 的权限配置
因此前端新增字段展示、部门视图调整、列顺序变化时,应优先改 Subject View 配置,而不是直接修改页面常量。
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment