1. 概述
1.1 版本
JAR 包 | App 版本 |
---|---|
BI6.0.x/6.1.x | FR11.0-2023-06-01 |
1.2 功能场景
面对各种涉及配置权限控制前端按钮显示隐藏的需求,组件可视化控制插件,可以统一控制各类前端组件隐藏效果
支持配置的权限维度包括全局、用户、角色、部门,开启按钮后即表示隐藏,隐藏根据所在页面执行
2. 插件介绍
2.1 插件安装
2.2 插件使用
2.2.1 安装与配置
安装插件后需要强制刷新浏览器缓存,不需要重启,插件即可生效
超级管理员通过系统管理页面的【组件可视化】子页进行配置(该功能影响范围较大,仅支持超管用户配置,不支持授权)
默认状态下权限为灰色状态,灰色表示不隐藏该组件,点击后打开权限,变成蓝色,蓝色表示隐藏该组件
支持按照全局、部门、角色、用户等多个维度进行配置权限,不支持权限继承逻辑。全局维度表示对所有用户均生效。
权限配置取并集,即会查询全局配置、当前用户的部门配置、当前用户的角色配置、当前用户的用户配置,任意配置下有A组件的隐藏权限,则A组件都会在当前用户访问时隐藏
2.2.2 隐藏组件分类
各组件所在位置及隐藏效果详情查看组件介绍文档
可视化控制插件文档 |
---|
可视化控制插件各组件介绍文档 |
组件分页按照页面位置进行分类,平台页表示平台工程页面,分析主题页表示分析主题的编辑和预览页面。
我的分析特指平台页面的我的分析页面;分析主题特指分析主题编辑和预览页面
分析主题下分为通用配置、组件、仪表板,如果是组件目录下的,说明这个按钮只存在于组件中,如果是仪表板,只存在仪表板,如果是通用配置,则分析主题内都可能存在
平台页表示平台工程页面
分析主题页表示分析主题的编辑和预览页面
2.2.3 分类节点和组件节点
分类节点:名称后带有(分类)标记的节点,该类节点效果包括:分类以及批量控制该节点下子节点
分类节点本身无任何实际意义,隐藏或显示都不会在前端产生变化
普通组件节点:名称后无(分类)标记的节点,该类节点代表某一类型前端组件,有实际前端效果,隐藏或显示会对前端产生变化
2.2.4 父子节点
组件隐藏支持对父节点隐藏,例如隐藏父节点【智能运维】,会使得整个智能运维被隐藏掉,而不是仅仅隐藏智能运维下的各个子组件。
判断是否对父节点隐藏是通过查看父节点是否开启隐藏实现的。
如果父节点开启、子节点开启,则隐藏父节点
如果父节点开启、子节点关闭,则隐藏父节点
如果父节点关闭、子节点开启,则隐藏子节点
如果父节点关闭、子节点关闭,则不隐藏
2.2.5 逃逸出口
存在极端场景:组件配置页面被隐藏,无法再配置化,为规避该场景,开放逃逸通道,超管在任何场景下访问下列路径,都能进入配置页面
同时,超管如果在逃逸出口下刷新页面,不会执行任意隐藏逻辑
http://ip:port/webName/decision#/management/dec-plugin-widget-hide-config
3. 实现效果
举例说明1:全局维度下配置了平台目录页面仪表板另存为组件隐藏效果,则所有用户都无法看到目录下的仪表板另存为按钮,但是不会影响其他页面(比如我的分析、比如分析主题)的仪表板另存为按钮
举例说明2:角色维度下配置了测试角色开启分析主题页面组件页面导出Excel隐藏效果,则所有携带测试角色下的用户都无法看到分析主题页面组件页面导出Excel按钮,其他用户不受影响。
例如用户2是测试用户,用户3不是测试用户
用户2访问时的效果如下
用户3访问时的效果如下
4. 常见问题
1、【另存为】和【仪表板另存为】的区别?
2、【平台>目录>组件导出excel】、【分析主题>组件>导出excel】、【分析主题>仪表板>组件导出excel】、【目录>XXX仪表板>YYY组件>导出excel】是否有控制继承关系?
控制没有继承关系,对应目录开启就是没有权限,关闭就是有权限
3、与模版认证的关系?
没有关系,任意一个禁止导出,就都不会显示导出按钮。
组件可视化是前端屏蔽,模板认证是后端屏蔽+前端屏蔽
4、插件生效问题,安装完是否需用重启工程?
工程安装后不需要重启,后续插件升级也不需要重启,但是每次都需要使用【ctrl+f5】强制刷新页面
5、【+分析主题】指的是什么?
【+分析主题】的【+】是一个字符标记,这一个表示的是,点击【+】号出来的创建分析主题,如下图
6、目录页设置后无法控制链接目录挂载效果?
目录页配置仅支持控制仪表板挂载,不支持控制隐藏链接挂载
7、配置的记录如何查询
配置权限后在finedb里有个plugin_widget_hide_authority表,里面refreshTime表示权限配置时间,可以用这个排序看下最新的权限配置项
8、分享预览页指的是/v5/design/report路径,公共预览页指的是/v10/entry/access路径
9、父子部门权限继承问题
如果存在用户A属于部门1-部门11-部门111,则用户A同时受部门1、部门11、部门111三个部门的影响,最终生效的是最后一个配置项
例如先配置部门111权限后配置部门1权限,用户A实际权限为部门1;
例如先配置部门1权限后配置部门111权限,用户A实际权限为部门111;
存在如下场景,将部门父部门切换后,部门权限变更,一般是由于父部门配置的权限比此部门权限晚
10、内测版插件升级到商城插件版本后原有配置项失效
内测阶段发现oracle某些版本默认表名不能超过30个字符,插件的表名超过了,如果用在这种环境上插件不能用,
为适配兼容oracle,修改表名,导致新插件读不到原有表名下的数据
解决方式:
在FineDB中将fine_plugin_widget_hide_authority表重命名为plugin_widget_hide_authority,
将fine_plugin_widget_hide_bean表重命名为plugin_widget_hide_bean
5. 注意事项
1、不支持iframe嵌套使用
2、不支持屏蔽后端接口,仅作前端js隐藏效果
3、不涉及权限效果,仅为可视化效果