我的权限管理系统:
数据库设计:user,role,module,userRole,roleModule五个表.
Java实现:User,Role,Module,三个实体类,并且Module加了一个属性(has),表示用户是否有此权限
再用了一个SecuriryManager来实现对userRole,roleModule操作,
在页面中,用户没有的权限要灰显,:我先查出所有的modules,再根据用户ID查出用户所拥有的权限modules,两个比对,并设has属性,
不知道这样设计实现好不好?还有没其它的实现?
还有一种,user role,right,module,operation,userRole,roleRight,七表权限中,权限表怎么与模块,操作表关联.
数据库设计:user,role,module,userRole,roleModule五个表.
Java实现:User,Role,Module,三个实体类,并且Module加了一个属性(has),表示用户是否有此权限
再用了一个SecuriryManager来实现对userRole,roleModule操作,
在页面中,用户没有的权限要灰显,:我先查出所有的modules,再根据用户ID查出用户所拥有的权限modules,两个比对,并设has属性,
不知道这样设计实现好不好?还有没其它的实现?
还有一种,user role,right,module,operation,userRole,roleRight,七表权限中,权限表怎么与模块,操作表关联.
解决方案 »
- Java.sql.SQLException: After end of result set 错误!大哥大姐门来帮忙啊!
- 前辈们 是不是Struts+Spring+Hibernate是大多数企业用的一种框架?
- struts标签的问题 (十分急!)
- tomcat只要安装jre(java 运行环境)就可以了吧?不需要安装java的开发kit?
- 在template使用时content后面文件的路径问题
- 门户网站服务器硬件的配置?
- sqlserver的数据库包(3个jar文件)有windows和linux的区别吗?
- 各位帮帮忙,数据保存到access的问题
- 这些宝贵资料适合入门的朋友学习
- 我想去数据库中最新的记录,sql怎么写?
- 自己写的一个翻页示例程序,非常诡异的错误...
- 能否或如何让iframe里的页面不随其他页面滚动???
引用“在页面中,用户没有的权限要灰显,:我先查出所有的modules,再根据用户ID查出用户所拥有的权限modules,两个比对,并设has属性”,这样设计肯定不可以取!你为何不直接通过用户的id查出用户的资源呢?
User,Role这两者是多对多关系,因此抽出一个中间表,user_role,这张表就存储userId和roleId,还有权限的优先级(当用户授权多个资源,可通过此得到优先级高的权限)。然后再用一张表存储t_acl存储主体标识:principal(是用户还是角色),principalId(主体的标识),moduleId(资源标识),has(是否允许访问)。
上面的设计忽略了资源对用户的继承关系,还假设资源可以直接授权给用户,也可以授权给角色!
至于“把用户所没有的资源也列出来,但是是显灰哟”,就按你的方法办,只是显灰最好用标签去判断
我现在有另一个实现方式,
就是把所有的资源都缓存到内存,这个作为所有用户共享,
再根据用户ID查询出用户所拥有的权限ID,和缓存的资源比对,以达到实现页面中的功能
.数据库基本就那些了.实现在你有没好的方法?