bg.work 权限管理实现完成,数据操作/界面显示控制更便捷
bg.work 权限管理实现
权限管理对有组织结构的系统重要性无需多言,没有权限限制的管理、办公系统将没有可用性可谈。说实话权限管理系统实现起来没有任何门槛,直接几个if else判断就能解决现实需求 ,但是,如果需要灵活、健壮、可维护、可扩展达,使整个开发组满意的的权限管理系统,那就另当别论了
bg.work的权限系统与本系统的数据与界面实现方式有着紧密的联系,所以在介绍权限系统前,我们要先介绍下数据与界面功能。
1、数据操作:
bg.work在数据层设计了Model ORM,基本结构如下:
//model对应数据库的表,基于model orm 实现,model字段可以动态读取,利用这一原则与权限系统结合,可以动态设置针对model数据控制 @Model("department", "部门") class Department:ContextModel("corp_department", "public") { companion object : RefSingleton<Department> { override lateinit var ref: Department } val id= ModelField(null, "id", FieldType.BIGINT, "标示", primaryKey = FieldPrimaryKey()) val name= ModelField(null, "name", FieldType.STRING, "名称") val comment = ModelField(null, "comment", FieldType.TEXT, "注释") }
2、界面定义
<!--基于model orm 框架,界面元素对应Model属性名称,基于这一原则,我们可以结合权限控制系统实现对界面的灵活控制--> <view type="list"> <field name="id"/> <field name="name" type="static"/> <field name="comment" type="static"/> </view>
对应界面:
3、bg.work权限系统框架结构
说明:
Access Model Rule 控制Model(数据表)
read:是否有权操作、读取字段设置、读取哪个用户数据、限制到什么部门、限制到个人/整个组织、限制到目标角色、附加条件等
delete:是否有权操作、删除哪个用户数据、限制到什么部门、限制到个人/整个组织、限制到目标角色、附加条件等
edit:是否有权操作、更新字段设置、更新哪个用户数据、限制到什么部门、限制到个人/整个组织、限制到目标角色、附加条件等
create:是否有权操作、添加字段设置
设置界面:
Model UI Rule 对Model View 的限制
针对 model view 要展示的字段及操作按钮限制,每种 model都有对应的View Type
设置界面如下:
App menu控制,也是针对管理系统的菜单进行控制:
五、总结
bg.work权限系统的加入,对后续功能的加入实现了直接控制,同时也实现了加入功能时不再考虑权限问题,所有的权限设置都推迟到系统部署或定制阶段
附加:
bg.work 源码连接:鼓励请点赞
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
小说精品屋 v2.0.2 发布,小说阅读弹幕网站
小说精品屋-小说阅读弹幕网站 v2.0.2版本发布了,主要改进包括: 更新 增加漫画弹幕功能 增加加入书架的书籍下次可继续上次阅读记录的功能 爬虫功能增强 Bug修复 解决漫画模块图片有时加载不出的问题 项目介绍 小说精品屋是一个多平台(web、安卓app、微信小程序)、功能完善的小说弹幕网站,包含精品小说专区、轻小说专区和漫画专区。包括小说/漫画分类、小说/漫画搜索、小说/漫画排行、完本小说/漫画、小说/漫画评分、小说/漫画在线阅读、小说/漫画书架、小说/漫画阅读记录、小说下载、小说/漫画弹幕、小说/漫画自动爬取、小说内容自动分享到微博、邮件自动推广、链接自动推送到百度搜索引擎等功能。包含电脑端、移动端、微信小程序等多个平台,现已开源web端、安卓端、小程序端源码。 软件架构 前台web网站架构:Springboot+Mybatis+Mysql+Ehcache+Thymeleaf+Layui 平台后台管理系统架构 : Springboot+Mybatis+Mysql+Redis+Thymeleaf+Layui+Bootstrap 前台web网站截图 电脑端(首页) 移动端(首页) 移...
- 下一篇
声明式 API 编程框架 Mars-java 发布 3.0.9
本次更新如下: 分布式锁只需一行注解 新增文件下载功能封装 多个文件上传可以一次性接收 文件上传可以配置大小限制 分布式锁 @RedisLock(key = "自己定义一个key") public int insert(){ return 1; } 这个锁会在事务开启之前获取,在事务提交以后解锁,并且只对MarsBean有效,对API和DAO无效 如果你不需要锁住整个方法,只需要锁一小段代码,那么可以去我的官网查看相应资料 文件下载 在service实现类的方法里传入HttpMarsResponse对象,然后一行代码搞定 public void downLoad(HttpMarsResponse response) { try { File file = new File("/Users/yuye/Desktop/demo.mov"); InputStream inputStream = new FileInputStream(file); response.downLoad("文件名称",inputStream); } catch (Exception e){...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果