权限矩阵的创造(一)

发现有很多朋友在权限上还使用简单的代码来实现权限功能,但这种简单构造碰上大型项目时,往往成了制约,缺少足够的灵活性,兼容性,我来说一种WINDOWS形式的权限,扩展性也非常高。


首先我们得说一下思路,我们要实现的功能是,每个单权限要多,在踢人功能,有单点登陆功能,有角色概念,当角色权限满足不了个人时,个人有独立于角色之外自己的权限,甚至个人拥有区域的概念


面对这样的情况,那种简单的代码已经完全不能满足我们的需求,可能有的朋友看到这里已经构思出了自己的权限矩阵,我来说说我的实现思路,我比较注重思路而不是代码,这可能是职业习惯,所以这往篇文章我也只是说思路为主,代码为辅,上传图片毕竟还是很麻烦的一件事,我尽量多上传一些构架图来配合说明。首先我们来看,普通的代码权限:1、拥有一个类似USER的表,里面有基本的用户名,密码,拥有的权限代码(简单的如1\2\3\4\5\这种数字代表)。


当拥有角色概念时,我们必须得再建一张role表,记录每个角色拥有权限,这时user里的权限转移到role上,这样就有两张表:user/role,再来看个人拥有独立于角色之外的权限,这时得大修改了。


权限矩阵的创造(一)_第1张图片




用户登陆输入用户名和密码,系统先确定用户名和密码是否正确,然后从Manage_User_Role和Manage_Role_Right联合查询得到角色权限,再得到个人另加的权限,两者权限合在一起即为当前用户拥有的权限,再所有权限相加在一起,每个前后都加上识别符如“,”,即为用户权限代码,以后每使用一个功能,只要验证其是否在用户权限代码里即可。


框架就是这样,下章我们再来细分。

你可能感兴趣的:(C/S类)