内容简介:bg.work 权限管理实现 权限管理对有组织结构的系统重要性无需多言,没有权限限制的管理、办公系统将没有可用性可谈。说实话权限管理系统实现起来没有任何门槛,直接几个if else判断就能解决现实需求 ,但是,如果...
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 源码连接:鼓励请点赞
github:https://github.com/ouliuying/bgserver
gitee:https://gitee.com/ouliuying/bgserver
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入浅出React和Redux
程墨 / 机械工业出版社 / 2017-4-28 / 69
本书作者是资深开发人员,有过多年的开发经验,总结了自己使用React和Redux的实战经验,系统分析React和Redux结合的优势,与开发技巧,为开发大型系统提供参考。主要内容包括:React的基础知识、如何设计易于维护的React组件、如何使用Redux控制数据流、React和Redux的相结合的方式、同构的React和Redux架构、React和Redux的性能优化、组件的测试等。一起来看看 《深入浅出React和Redux》 这本书的介绍吧!