后端集成的业务模块清单一览,尤其是第一组菜单显示的子菜单,是本系统必备模块,只有依赖这些自带模块,才能灵活地控制业务模块(业务页面)的使用,例如: 页面何时生效、页面权限分配给哪个岗位、页面的元素按钮需要展示即可等。
menu.jpg

请看一个场景

在一个企业,新员工入职后必做的事情有几件?从走进公司之后到正式开始工作需要经过哪些环节?
最核心的步骤我概括如下:
1.登记用户信息、发放工牌——对应本系统的用户管理模块。
2.分配岗位——给新用户分配入职后的岗位,对应本系统的岗位成员模块。
3.发放员工手册,主要点之一是告知岗位职责——对应本系统的权限分配,给岗位分配具体页面权限。
4.经过以上三步,基本可以正式开始工作了,本系统自带其他模块也是围绕这三个核心步骤服务的。

系统菜单

管理 系统左侧展示的菜单,每个菜单打开对应一个页面,一个页面又挂载了很多按钮,例如:增、删、改、查等,都是通过此菜单管理的。
1.后台设置的菜单+绑定的按钮(例如:增、删、改、查), 凡是没有设置为禁用状态,都对应前端的一个视图(页面地址)+界面按钮.
2.系统菜单 可以在权限分配页面分配给不同的组织机构节(例如:公司、部门、岗位等),凡是挂接在特定岗位底下的用户,都会继承已分配的视图+按钮元素。
3.系统菜单新增界面默认会有四个按钮,分别是 增、删、改、查, 每个按钮都对应一个后端接口地址,当该菜单被分配给组织机构节点时,按钮对应的接口地址会自动绑定到 casbin 模块对应的表,如果一开始菜单没有设置正确相关按钮、接口地址,请修改按钮对应的地址,重新分配权限即可.,casbin 控制的接口权限被封装在底层,作为业务开发者是无感知的。
具体页面如下:
menu_page.png

页面绑定元素以及接口注意事项

image.png

组织机构

企业以集团、分公司、部门、岗位等,按照层级划分(树形划分),所形成的垂直管理体系, 被称为:组织机构.
如果是企业项目,该模式类似于 集团、分公司、部门、岗位等模式。
如果是政府项目,该模式类似于 XXX区政府、部级、处级、科级等模式。
在我曾经就职过的世界500强、以及给政府开发过的项目中,次模式被广泛使用。
具体页面如下:
org.png

岗位成员

在一个公司、或者政府部门,所有人都会有一个岗位,岗位成员的主要作用就是给所有需要使用本系统的用户分配岗位。
将用户配置在组织机构树设置的岗位, 使用户与组织机构建立关联关系, 在 权限分配 菜单为特定组织机构分配权限后,该用户则自动垂直继承权限.
具体页面如下:
org_memb.png

权限分配

在本系统中,权限的分配目标可以是组织机构中的集团、分工公司、部门、岗位任何一个节点,
底层节点会继承上层节点的权限,一个岗位底下的用户则拥有该岗位以及继承后的所有权限。
一般来说,我们会尽可能精准的分配权限,首先考虑将权限分配给组织机构中的岗位节点(也就是末节点),这样属于该岗位的用户自动拥有该岗位相关权限,上级节点往往分配属于底层节点的公共权限,底层结点自动继承。
auth_extends.png
本系统中,我们将新开发的页面权限分配给超级管理员所在的岗位之后,就可以预览具体效果。
如果是普通用户,就事先给普通用户分配岗位,然后给特定岗位分配权限,普通用户登录以后就只看见特定的菜单了。
super_man.png

权限分析

由于本系统的权限管理使用了垂直划分+继承模式,目的是能够支撑的起一个企业中型系统的运行,同时会带来一些其他问题——一个用户的权限除了来源于自己的岗位之外,还可能来源于上级部分、上上级分公司、甚至集团节点,在一个企业项目中,有时候用户的超多权限会令用户感觉“头疼”。此时权限分析会展示所有权限的来源,让不同的权限来源一清二楚,同时如果有些莫名多出来的权限,可以在这里分析出来源,在权限分配界面撤销即可。

auth_laiyuan.png

用户模块

此模块基本无需多做介绍,任何一个系统至少都得有用户模块。
user.png

按钮设置

本系统中页面中需要出现的按钮,需要全部在这里事先定义,才能分配、使用,同时也是权限控制的最小粒度,即权限控制的最小粒度为页面按钮。
同时按钮被分配给页面时,每个按钮会对应一个后端接口,本质上前端的一个按钮 = 后端的一个api接口。
button_ele.png