日期:2014-05-17  浏览次数:20717 次

用户权限管理设计
    我现在想做用户权限管理功能。主要实现对用户的角色功能的控制,树形菜单及页面上的相关功能按钮的控制
    用户根据角色权限只能查看自己权限内的树形菜单内容,单击相应的菜单内容后打开的权限内的页面中显示权限内的功能按钮
    现在有了一下几张表:
    用户表:user_info
    角色表:role_info
    权限表:sys_permission
    用户角色表:user_role
    角色权限表:role_permission
    
    还应该添加什么表来实现我想要的功能呢?请各位大侠不吝赐教!!!

------解决方案--------------------
可以的, 楼主参见下RBAC
------解决方案--------------------
引用:
引用:引用:我看了一篇关于RBAC的文章,但总理不清思路,先发图,请指点一下。
红色标注部分是如何联系控制的呢?
红色部分中间一排是上下的关联表,体现上下多对多的关系,权限表基本上就是红色部分与权限的接口;
这种设计模式所有权限都被赋予到各种角色上,所以在界面中只要获得当前用户所拥有的角色就可以……

针对你的需求,我不清楚你的树是如何构成又是从属于什么样的结构的,所以我只能说和权限具有多对多关系的5个表(忽略关系表)中除了角色表外都是通过权限获取的最终需要操作的元素集合,也就是说你可以根据当前用户所拥有的角色获取用户的所有权限,然后根据权限和功能表的关系获取用户有权操作或获取哪些功能。从这个角度讲,功能操作表和菜单表、页面元素、文件表都是平级的。
例如:假设你所说的树形菜单的每个节点是页面的链接,那么你需要过滤的是页面元素的权限;
ps:其实我认为红框这块设计有问题,不符合面向对象的思想。
------解决方案--------------------
先设计好,用户、角色、权限之间的关联关系。
获取用户A的权限。先获取A所有的角色,遍历角色,分别取出没个角色所拥有的权限。这样就获得了A的权限列表。
在权限中设置一个布尔属性,A的权限包含这个权限,为TRUE,不包含,为False。显示为TRUE的权限就是A的权限了。
------解决方案--------------------
控制页面的按钮或是连接那个叫场景的控制(这个叫法比较时髦哈,一开始我也理解不了),我公司的框架已经实现你了的需求了。
权限可以参照RBAC的思想,所有操作是围绕角色来做的,某一种角色的人可以干什么事情(或者说某一类角色的人可以查看哪些资源);用户表、角色表、资源表、用户角色关系表、角色资源关系表、用户组表、用户与用户组关系表(角色自己可以去分:菜单角色、场景角色、工作流角色等等)(资源也可以分:菜单资源、场景资源等等)理清这些关系你就好控制权限、资源了