对于不是很复杂,拓展性不是很强的系统。做权限控制的思路是:让用户属于不同的用户组(角色),然后根据角色来制定那些菜单可见或者不可见。
当用户登录后,载入主页面的时候,根据用户的角色来判断菜单和权限的关系。
所以需要定义一个角色表role,菜单表menu和一个角色和菜单权限的关系表role_relation。
role_relation这个表记录角色的ID和菜单的ID:
当登陆后,就确定了用户的角色,用角色ID进行检索:
1 select 2 r.pkid as pkid, 3 r.roleID ,m.pkid as menuID , 4 m.name as menuName 5 from menu m left join role_relation r on m.pkid = r.menuID 6 and r.roleID=@roleID
查询出来的结果:
1 1 1 首页
2 1 2 房产档案
3 1 3 房产合同
4 1 4 房产检查
5 1 5 收房租
6 1 6 交房费
7 1 7 房产费用
8 1 8 房产查询
NULL NULL 9 用户维护
NULL NULL 10 查看报表
NULL NULL 11 房产统计报表
NULL NULL 12 收入支出报表
可以看出 null 就是没有权限的菜单,
在加载的时候只需要加载不为null的菜单, 而在分配权限的时候,需要得到有权限和没权限的所有菜单(以及后追加的新菜单)
之后进行查看,修改等操作。
这是最简单的设计思路之一。
时间: 2024-10-10 02:08:28