更多功能请访问演示环境体验!
系统中的组织架构分为部门、角色、用户 ,它们都属于组织架构对象,存放在一张系统组织架构表中,通过一个组织架构类型进行区分。它们之间通过一张组织架构关系表维护上下级树关系,用户放在部门或者角色的下级,部门下面可以新建子部门。不同角色之间是平级关系,没有上下级关系。
为了提示组织架构对象查询的性能,系统启动时对组织架构对象的树结构进行了缓存,查询时直接去缓存树中进行递归,查找出所有子节点,或所有父节点。在进行组织结构关系修改时,系统会自动刷新缓存。
考虑到组织架构选择功能很多地方会使用到,我封装了前端的组织架构选择控件,可选择部门、角色、和用户
系统将菜单分为四个种类:
菜单类型 | 菜单说明 |
目录 | 菜单所存放的目录 |
菜单 | 实际能访问的菜单页面 |
接口 | 后端提供的访问接口 |
按钮 | 前端页面可见的按钮 |
这种四级菜单结构的设计,为菜单的权限提供了更细粒度的控制。
系统设计了一个通用的权限系统,不仅仅局限于菜单权限,系统只用一张权限表,就可以支持任意权限,不用再设计其他权限表。 用户自动继承上级部门或者角色的权限,也可拥有自身权限。 提供通一的权限查询接口,根据权限定义、权限类型、用户id,查询出对应权限。 以下以菜单权限为例:
可以对部门进行菜单授权,则该部门下的用户自动拥有该部门的权限,蓝色文字代表直接对这个授权对象赋予的权限,黑色文字表示这个授权对象的权限是继承自上级对象。
界面提供一个清空自身权限按钮,点击会删除授权对象的所有自身权限,不影响继承权限。
假如部门下有100个用户,其中一个用户我们想单独取消某些用户权限,这时可以同时对用户进行单独授权,拒绝该菜单的权限,当菜单的checkbox为红色时,表示拒绝权限,当checkbox未选中时,表示没有该菜单的权限,当checkbox为选中状态时,表示拥有菜单权限。