简要介绍一下该权限管理系统的特点,该系统功能上做到了灵活授权,操控细致,权限可以细到按钮及超链级别,而且部署简单,下面谈谈我自己的设计经验。
该系统主要功能如下:
1、 自定义操作动作(如增加、删除、修改、审核等,不再是以前见过的那种粗粒度的
按模块分配权限,或者稍微先进点的规定死某几个操作了)。
2、 无限级功能模块管理,自定义模块排序,可以更好地对整个系统中所有模块进行
分类管理。
3、 灵活地为各模块分配操作,即每个模块有哪些操作需要被控制(将步骤1中添加的
操作按需分配给各模块)。
4、 对所有用户基础信息进行管理,实行有效期机制,过期自动失效,在有效期间亦
可强制停止用户使用。
5、 自定义角色,可以起个听起来通俗易懂的名字。
6、 任意角色可任意组合系统权限功能点(比如某个模块里他只能修改数据而不能添加
或删除等其它操作)
7、 一个用户可有多个角色(多身份),一个角色也可以被多个用户拥有(同身份)(多对
多),灵活授权。
8、 按角色给用户授权,当授权对象数量庞大的时候就可大显身手了(比如给公司全体
员工授权)。
9、 按用户分配角色,当某个用户以多种身份出现在系统中的时候,希望分配多个角
色。
10、 用户及角色分级管理,下级用户只能拥有上级用户权限的子集,可无限级,
而除了超级管理员外其它用户都只能看到属于自己管理范围内(自己创建的)用户,也只能分配自己管理范围内(自己创建)的角色,这样可以做到各司其职,管理清晰。
从数据库结构来看,一共设计了七个表(table),表名及功能分别如下:
1、 操作表
用来存放用户自定义的各种功能操作,比如新增、修改、删除等,以前见过的设计是将操作直接放在模块下面管理,这就导致了常见的操作通常要重复添加N次(比如大部分模块都会有新增修改等操作),如果模块比较多就显得非常繁琐且容易出错。现在把它放在一个单独的表里面进行管理就可以避免这一问题出现,流程也更加清晰。
2、 模块表
顾名思义就是将系统中的各模块进行管理,支持无限级模块
3、 模块操作关联表
各模块有什么样的操作就在这里体现,在模块与操作之间建立起关联形成权限点,以便给角色授权。
4、 角色表
对角色基本信息进行管理。用户可以自定义成各种各样的角色,比如局长、校长、总经理等。
5、 角色权限表
将角色与系统中的权限点关联起来,也就是完成授权的动作。
6、 用户表
将用户的最基本的信息进行管理(在正常的业务系统中可进行扩展用户信息),比如姓名、有效期等。
7、 用户角色表
在用户与角色之间建立起关联,给用户授予哪些角色权限(同一用户可以有多个角色),也可以按角色添加用户,比如将“员工”角色授予公司所有人,而不用按用户一个一个地授权。