以前接触到的访问权限,用户登录进来,判断一下用户的身份,根据其身份的权限,进行显示相应的内容。不过那样有个弊端,权限是写死在程序里面的。这一点对于灵活性高的系统来说,肯定是不可取的。所以我们要把权限控制变编译时为运行时。
废话不多说,直切主题。下面这幅图是实现这个权限管理功能的表结构逻辑。对系统用户进行分组,对功能进行整理,然后让组与功能对应起来,只要该用户属于该组,那他就能访问到与改组对应的界面。所以严格的说,这个权限管理,也就是一个页面访问控制权限管理。
下面往数据库的表中插入一下测试数据:
根据实际情况,再为这5张表创建3个视图,
v_group_url这个视图可以用来查询某个用户组可以查看的全部网页(即有访问权限的网页)。
v_user_group这个视图可以用来查看该用户属于哪些用户组。
v_user_url这个视图,将2个视图联合起来,可以用来显示,某用户可以访问的页面。
这样通过v_user_url这个视图,就可以判断该用户有哪些界面的访问权限了。而我们再做一些针对这些表的控制,这样就把权限管理给做活了。
其实归根结底,我们只是将用户与功能进行了分离,解耦,通过对用户组和功能建立关联,从而达到控制用户访问该页权限的目的。