jsp中如何根据不同级别的用户赋予不同的搜索权限?

kingork 2010-10-26 11:28:06
我想开发一个基于本公司业务发展数据的查询平台,领导的意思是普通员工只能查询自己发展的业务,而部门主任能查询本部门发展的所有业务,领导级别的人物呢最高权限,所有的资料都可以看到。目前我已经实现了最高权限即领导级别的查询功能,各位大侠,小弟刚接触jsp开发,恳请各位给个实现的思路。
...全文
229 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kingork 的回复:]

感谢楼上的回答,
您的意思是在用户表中增加一个字段,类似于权限级别的字段?那么在SQL中怎么写呢?然后在后台怎么做啊?能不能说的再详细些呢?我补充下我采用的技术方法:jsp+Oracle+javaBean+DAO工厂模式。
两张表,用户表和基本数据表,把登陆后的用户信息放在session中。
[/Quote]
在SQL就正常写呗!把你原来的表新加个字段,比如叫authority,这个字段不能让别人来赋值,是添加用户时候根据你添加的是什么用户自动生成的,也就是有你自己控制的,比如说0是最高权限,1部门权限,2普通权限
  • 打赏
  • 举报
回复
在数据库加个权限字段,把这个字段加到相应的JavaBean里,生成set和get方法,然后在你处理查询请求那个DAO接收一下这个权限,然后用if……else生成不同的sql语句,进行查询!
补充一下:怎么接收这个权限,在你用户登陆的时候,把该用户存放到session会话中,不知道你用没用servlet,如果用了,就在servlet里得到session然后获得该用户,get出该用户的权限,然后传到DAO里,如果没用servlet,这些操作直接在DAO里!
希望对LZ有帮助!
huchaochao 2010-10-26
  • 打赏
  • 举报
回复
根据session值判断
kingork 2010-10-26
  • 打赏
  • 举报
回复
感谢楼上的回答,
您的意思是在用户表中增加一个字段,类似于权限级别的字段?那么在SQL中怎么写呢?然后在后台怎么做啊?能不能说的再详细些呢?我补充下我采用的技术方法:jsp+Oracle+javaBean+DAO工厂模式。
两张表,用户表和基本数据表,把登陆后的用户信息放在session中。
tbxgoo123 2010-10-26
  • 打赏
  • 举报
回复
楼主可以看看这篇文章:http://www.ibm.com/developerworks/cn/security/syscontrol/index.html
m690192206 2010-10-26
  • 打赏
  • 举报
回复
多设置一个字段,用来区分不同部门的字段,就可以了呀,那么普通员工和部门主任都有对应的字段(条件字段),领导就可一忽略这个字段直接查询所有
kingork 2010-10-26
  • 打赏
  • 举报
回复
恩,感谢aoli444的帮助,准备结贴了,小弟分数不多,请各位谅解。
aoli444 2010-10-26
  • 打赏
  • 举报
回复
dm最好再建一张表维护(代码,名称,根据需要可以加其他字段),这个dm应该是结合部门,岗位进行编码
aoli444 2010-10-26
  • 打赏
  • 举报
回复
我这边都是这样处理的
kingork 2010-10-26
  • 打赏
  • 举报
回复
感谢楼上各位朋友的热心帮助。
我刚才认真看了下9楼的回答。
他的意思是不是在每条记录中增加一个字段,这个字段的内容包含业务发展员的编号,在SQL查询时用like进行模糊匹配?是这样的吗
kingork 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ghsau 的回复:]
在数据库加个权限字段,把这个字段加到相应的JavaBean里,生成set和get方法,然后在你处理查询请求那个DAO接收一下这个权限,然后用if……else生成不同的sql语句,进行查询!
补充一下:怎么接收这个权限,在你用户登陆的时候,把该用户存放到session会话中,不知道你用没用servlet,如果用了,就在servlet里得到session然后获得该用户,get出该用户的权限,然后传到……
[/Quote]

首先感谢6楼的回答,这个方法我开始想到过,确实可以解决一般的用户权限管理问题,但是还是有点问题,举例来说:市场部的主任和财务部的主任怎么区分呢?怎么让他们只能查到自己部门 的数据呢?
是不是需要在数据库中增加用户所属部门表,在读取用户资料的时候查询部门表,然后构造不同的SQL?
我用了servlet,但是我对oracle数据库查询语言还不是太熟,按照上面的思路sql查询如何写呢?能不能举个部门主任查询方法的例子啊?如果能的话万分感谢!
aoli444 2010-10-26
  • 打赏
  • 举报
回复
给每个用户赋一个权限代码,比如 11300000000,下一级就是11301000000,11302000000,再下一级依次类推,查询的时候先将代码截后面0处理,然后查询加上 dm like '11301%'
跑跑鱼 2010-10-26
  • 打赏
  • 举报
回复
楼上的 正解

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧