大家在实际中的项目都是怎么做用户权限判断的要求
1、程序里要有权限判断
2、界面按钮要有权限判断是否显示出来目前我打算建立3个表(都是多对多的关系)1、用户表
2、角色表
3、权限表大家随便发表意见吧。实际的项目一般都怎么做的。别和我说那些开源的框架(资料太少感觉短时间没办法学习并用起来)
1、程序里要有权限判断
2、界面按钮要有权限判断是否显示出来目前我打算建立3个表(都是多对多的关系)1、用户表
2、角色表
3、权限表大家随便发表意见吧。实际的项目一般都怎么做的。别和我说那些开源的框架(资料太少感觉短时间没办法学习并用起来)
1. 用户表(N):角色表(1)
也就是一个角色可以对应多个用户,换句话说就是一个用户可以有多个角色
2. 角色表(1):权限表(N)
一个角色可以拥有多个权限
就ok了,这个功能我实现过用Hibernate。
http://www.noahweb.net/mail/2/Project.htm
讲得很仔细
去看一下
授权用RBAC+ACL, 即角色拥有权限, 角色控制粗粒度,如url,method,域对象用ACL
用户表(N):角色表(1)
权限表(N)
用户--角色表
2、角色表
角色---权限表
3、权限表
一、我现在困惑的是,我点击一个角色的权限编辑页面的时候,我想把所有的权限查询出来,然后这角色有的权限前面打上勾。这个HQL查询应该是一个多表查询吧。怎么写呢?
二、还有大家在实际中一般数据库表会不会建立外键关联?还是程序员知道这个关联关系就行?
Resource1、用户表 User
用户--角色表(User and Role 通过此表进行many to many)
2、角色表 Role
角色---权限表(Role and Actor 通过此表进行many to many)
3、权限表 Actor
只需要建三个表的JavaBean,User,Role,Actorslect a from User u
inner join u.roles r
inner join r.actors a
where u.id = ?
LZ,你只是想查询角色与权限。怎么就成了三表查询呢?我有点困惑,
角色->权限
我做过的系统,权限是通过菜单来体现的。
说白了权限表里面放的就是菜单链接
角色和权限的中间表应该说就是一种一对多的关系 也就是一个角色有多个链接(来体现权限)
角色和用户是多对多的关系吧
lz在权限编辑页面的时候取的应该是角色和权限的关系,用不到用户表吧,lz要先把这几个关系搞清楚再来写啊~
-----------------------------------------------------------
俩次查询 一个LIST 放所有权限 一个LIST 放用户权限
后面两张关联表的关系,根据实际的关系来定,一般是many to many
2、用户角色关系表
3、角色表
4、角色权限关系表
5 、权限表
需要5张表,设置权限表可以看做是每个菜单,可以细化到每个按钮,如某个功能的删除。给角色赋权限时,可以用左右选择框,将左边展示所有的权限,右边框中展示该角色拥有的权限,点击提交时将角色ID 和权限的ID 批量插入角色权限关系表中。表之间是一对多的关系。用户和角色同样。
弄一个权限拦截器,将用户对应的权限全部查询出来,每次用户点击菜单时触发权限拦截器,判断是否有该权限。
1、用户表
2、用户角色关系表
3、角色表
4、角色权限关系表
5 、权限表我先唯一的问题是,这样的权限结构表 我怎么在程序中使用起来,
1、页面按钮的显示是包含一个<%if checkPur() {%>还是有更好的方法?
2、程序中怎么做权限判断呢?权限拦截器?还是手动加if checkPur()判断权限
3、hibernate的多表查询结果集怎么返回页面(呵呵,好像hibernate对多表查询结果集不好封装啊)看了就留点经验下来吧!~~~
查询角色权限对应表,获得所有权限,存放到集合.
LZ既然说点击了一个角色,就可以获得一个角色的id,通过该id,在界面上对集合进行筛选.
可以参考这个http://blog.csdn.net/leonmy/archive/2006/04/10/657593.aspx
自己去google搜索下,有图形表达,也许更容易理解