在项目中,初次负责用户权限管理模块。记录一下学习心得。主要的思想就是登录的用户能使用什么资源(功能)。具体来说,可以分成如下的步骤:
1.用户的权限已经被设置好;
2.用户登录,得到用户的信息,并查询其可用的资源;
3.仅显示其可用的资源
下面是数据表的设计:
成员表
id, userName,role_id
角色表(主键,角色名)
id, roleName
资源表(主键,资源名称,资源地址)
id,resourceName,url
资源表还可以细分成如菜单组表、菜单表、页面表、功能表四级,这样就可以把权限控制到页面上的按钮上了。
权限表(主键,角色编号,资源编号,权限标记)
id,role_id,res_id,flag
如果实在WEB项目中,在BaseAction中加入权限表Map<role_id,res_id>,其他的Action均继承它,这样所有的页面就都能实现权限的判断了,如:查数据库得到该用户的权限集放到session,然后jsp上用<c:if>这样的看session是否包含就行了。