【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
如果只是简单的工具软件,其实是没有权限管理这么一说的。比如说,串口工具、485工具之类的软件,其实根本不存在所谓的权限管理。只有在这个软件会被很多人使用的时候,才会涉及到所谓的权限管理。所以,权限管理的一个前提,就是很多不同背景的人都会用到这个软件,这才会涉及到。
1、权限的分类
一般来说,软件的使用权限可以分成三种。一种是超级用户,或者称之为root。这种用户几乎掌握了所有的软件权限。他可以定义规则,它可以添加新的用户,也可以删除老用户,它还可以分配权限。但是对于他自己来说,软件的所有权限都是开放的。
第二类就是管理员权限。管理员权限会比超级用户的权限小一点。但除了不能随便添加用户、修改对应用户的权限之外,其他的软件功能和管理员一样,一般都是开放的。
第三类就是操作员。和前面两种相比较,操作员的权限是最小的,一般操作员仅仅可以操作工单、查询数据和搜索资料等等。但是这些工单,他没有办法删除、没有办法撤销,甚至有时候都没有办法修改。
2、权限的赋予
软件的权限,在用户创建的时候就已经被赋予了特定的权限。比如,我们增加一个新用户tom。那么这个新用户tom在和特定角色绑定的时候,基本就确定了他的权限是什么。比如说像这样处理,
3、软件权限的实现方式
理论上说,软件权限的实现可以通过配置文件,或者通过数据库来实现。但是配置文件一般都是明文的,里面的内容很容易被人修改,所以大多数时候软件权限都是通过数据库来实现的。因为数据库本身就包含了用户名和密码验证环节,相关资料只有超级用户才能看得到,或者说只有超级用户才能变更这些参考资料。
4、软件权限的操作表
确定了软件权限用数据库之后,一般我们还会有一张表。这种表上面可以有很多不同的角色,虽然我们前面仅提到了三种角色。那不同的角色,理论上权限也是不一样的。那角色确定之后,权限部分就可以根据模块、功能来进行确定了。比如说,这个软件有26个模块,这样模块就可以用字母A-Z来表示。另外每个模块里面又有10个子功能,以第一个功能为例,这种情况下,如果角色可以使用对应的功能,那么可以是A1=1;如果不支持对应的功能,那么A1=0,模块和功能之间,可以相互用,隔开,比如A1=0,A2=1,依次类推。
5、软件界面的加载
有了数据库、有了权限,这样每个用户加载的界面其实就是不一样的。理论上来说,可以先把所有的界面都加上,最后根据权限灰化部分按钮、菜单和工具栏即可。但是这种处理方法,有点不人性化。因为它把使用者明显地区分成了三六九等,会给人一种被歧视的感觉。实际处理的时候,最好是界面部分只显示支持的功能,不支持的功能就直接忽略不显示。这样的话,既然对应的功能从来就没有显示,作为用户也重来没有应用过,这样就不会存在一种被忽略、被区别看待的感觉,因为它会产生错觉,即这些功能软件根本就不提供。
6、后续的话
不同的软件,部署的场合不同,使用的人群背景不同,有必要通过权限管理的方式提前分割开来。这部分宜早不宜迟,如果是后期再来做,常常就会变得很麻烦,要是早点规划的话,这样反而来的更好一些。