用户权限体系
组织结构
| 用户:系统的使用者 角色:权限点集合 机构:用户集合,一般按行政部门划分;同时也是角色集合,所属用户拥有这些角色 用户组:用户集合,一般按业务功能划分;同时也是角色集合,所属用户拥有这些角色 |
其中,用户和角色是授权体系中必备的,两者构成了最小的用户权限系统。机构和用户组可根据实际系统决定是否使用,两者分别从不同角度划分了用户群,有利于降低授权工作量。 |
权限点
- 权限点类型:页面、单元、元素的访问权限,数据权限,Action的执行权限
- 权限点如何设定:在开发阶段,由开发人员根据项目需求设定
- 用户如何拥有某些权限点:在系统运行阶段,由管理人员为用户授权
分级授权
- 分级授权的目的:当用户群庞大、角色多样、授权工作繁杂时,分级授权可有效的逐级落实管理责任、分流工作量、简化授权体系
- 通过“管理员”实现分级授权:“管理员”通常为子公司或某部分的管理人员,其管理范围和授权范围由“超级用户”约束,即,将某部分用户和某部分权限交给某个管理员负责
授权流程
实现原理
- 权限点设定:框架层和组件层设计了单元、元素、数据权限等权限点,开发控制台提供权限点设定界面
- 组织结构关系定义:角色直接关联权限点,用户与角色直接关联或通过用户组、机构与角色间接关联
- 关联数据存储:通过管理控制台的简易操作,将各类关联数据存入数据库
- 权限对象缓存:权限对象缓存并实时同步,避免每次读数据库,提高权限验证效率
- 权限拦截:通过拦截器(Interceptor)统一实现权限检查,严格保证了权限点的安全性,可通过配置文件调整拦截范围
- 流程调度:设置权限检查成功与否后的转向,记录权限点访问日志,验证失败后加载提示信息