低代码的权限管控,与传统开发的程序的权限管控差异不同之处在哪里的,现在我们来具体介绍下。
先讲解下 JVS的实现的原理,我们在数据库之上做了一个数据模型层,他主要完成动态配置列表页与表单的字段,在物理的数据库中,数据以普通的横表形式存在,在数据模型之上,实现了 数据图表、列表页、表单 等数据表达的页面, 前端的页面交互只与数据模型发生操作(类似于mybatis的思路),数据模型实现的 物理库表与 前端页面之间的柔性处理,例如增加字段与修改字段等,这种配置可以实时生效。
什么是数据模型呢?数据模型其实等效于我们日常所看到的表,只是他做了一个动态的调整能力,如下图所示,本质上还是一张表。
我们基于上述的介绍的原理,那么权限的管理怎么控制呢?
低代码的权限与传统程序开发的权限不同,传统的模式是代码固定好 资源的控制点,我们所谓的静态资源型控制,但是对于低代码来讲 ,需要 动态的配置与生效,那么这里就需要动态的控制。
JVS的权限控制包括:界面权限,按钮权限,字段权限,数据权限,数据过滤,下面我们分别介绍。
列表页、表单、图标的权限控制,可通过多个维度对用户进行授权,有了对应页面权限,才能从菜单上看到对应页面。
支持范围控制,全部授权与自定义授权,多维度授权:
支持权限组的控制:
按钮控制权限,主要是在列表页中进行控制
支持多权限组,多种数据展示模式,包括:全部数据、本人提交数据、本部门数据、下级部门提交数据、抄送本人数据,以及根据数据字段自定义判断,如图所示
自定义数据展示:
在数据模型中,支持查询数据的脱敏,他与数据权限有些差异,数据权限是控制信息是否展示,是行级的数据操作,数据字段脱敏更加细节,到字段级,关键信息隐藏,用于个人信息隐藏等。
设置脱敏的方式
开源地址:https://gitee.com/software-minister/jvs
在线demo:http://frame.bctools.cn/