查询的权限控制,希望大家帮个忙 我现在遇到个权限控制的问题,部门的经理去查询部门员工的考勤情况,我怎么限制这个权限,让他只能查自己部门的,不能查其他部门或整个企业。大家帮个忙,权限这块真不懂,说出思路也行,给去表结构更好,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用spring-security去控制,方便安全。一般利用3张表加两个关联表。一个用户表,一个资源表,一个角色表,用户属于某些角色。然后某个角色拥有某些资源。这样非常灵活了。呵呵。还不清楚就去找找关于spring-security的使用。 比如呢,我现在是分行经理,我想查分行员工信息,我是不是要在某一张表中来表示管理员的级别,还是直接用sql ,可以告诉我下,你的sql具体怎么实现吗 用户表 角色表 权限表 ~~其中用户表和角色表多对多(两个外键关联) 角色和权限也是多对多~~然后通过把当前用户的所有权限存在session里面 用struts2拦截器对所有操作进行拦截。。判断当前用户是不是拥有访问的权限~~~~大概是这样个思路吧~ 使用Spring的权限控制来弄吧,那个比较简单,网上教程也比较多,推荐《Spring+Security+安全权限管理手册》上面讲这个讲得很详细,慢慢看就懂了,涉及三张表。试试吧 好吧,我去试试,谢谢各位了,很多网站的通过等级或积分的不同来判断权限,比如csdn的网站,他的权限控制是什么歌思路呢, lz 试试这个spring security 你可以在配置文件一个个设置权限!或者你在表里面加字段!然后通过这个去控制 员工表(emp) 部门表(org)empId empName orgId orgSql orgId orgName1 张三 1 1 1 一级部门2 李斯 2 1.2 2 二级部门3 王五 3 1.2.3 3 三级部门二级部门是一级部门的下级部门,三级部门是二级部门的下级部门查张三及张三下级部门的人员:select * emp from emp where orgId like orgSql like '1%'不知对楼主是否有帮助? 控制对象级别的权限访问控制问题,用acl模型设计,即访问控制列表,即是在部门添加一个字段来存储所有能访问该对象的用户,通常是用字符串,然后分号隔开,便于解析; 这个思路很好啊,那个部门表里不要加个parentId 吗,要不然你怎么 判断那个是下级部门,还有那个emp表中,orgSql 这个字段,1.2 这是什么意思。可以这么标识吗,真没用过,哈哈,求教育了 y用传说中的二进制,比如有这个权限为1,另外个权限为1<<2,还有个权限为1<<3这样就把权限分开了撒,每次要去查询的时候就用自身的权限数比如x&所需权限如果有值即>0就表示有权限!!这个做法超快的哦亲 权限,包括操作权限,和数据权限。你所说的应该就是数据权限,如果数据权限是写死的话,可以在员工表加字段标示下,如果做成活的,那就有点麻烦了。必须设计数据权限,根据数据权限生成动态的sql才可以。 并没有这么简单当查询部门下所有员工的考勤信息的时候 ,没问题当部门经理查询他部门下面某一个人的考勤信息的时候,是不是要传递一个员工id过去。如果他传递别的部门的员工id过去 , 那不是违背了只能查询自己部门员工考勤的原则了。 如果部门下还有部门,那种sql怎么写呢 要建个组织表,加上组织路径(a/b/c) 然后通过路径 右模糊 查询 当前组织和以下组织 你是用什么方式实现权限控制的,url?注解?标签?如果你没用到开源的权限框架,写个filter 去过滤一下“查询部门员工的考勤情况”的这个请求不就行了?直接检查一下请求的用户是不是这个部门的经理,就行了吧? 请找出该经理的部门,然后对比一下,是不是本部门或者子部门就OK了吧? 还是说我不理解你问的问题。 如果你用struts,就写个过滤器。如果是针对数据库,写存储过程,就如楼上说,你到底要在什么地方实现,这才是关键,不然我们不知道你到底问的是有关什么的问题。。还是你仅仅就算法而言? 我的问题是,这个人的查询权限有多大,他只可以查他的部门和他部门的下级部门,就这个问题,后台用sql来写吧,我是这么想的, 谢谢大家了,我的问题解决了,查询权限的控制,只需要在原先显示数据的基础上增加条件,我可以把部门id穿过去,在后台查询数据的时候,用sql来控制,把该部门,下级部门的人员信息都查出来的,然后想查其他的就很容易了,我的用户关联角色,角色关联功能表,都是多对多的, 是的,a b 是上级组织 c是当前组织,这样你就不用递归查了,且方便展示 Exception in thread "main" java.lang.StackOverflowError . Log4j 奇怪的问题 急!javax.servlet.ServletException怎么解决啊?请大家帮帮忙! 字符集设置+数据连接池 延迟加载问题 SSH获取radio单选框值 问题??????各位大虾帮忙看下!! fatjar打包出错 请教一个空指针问题?? 使用eclipse时,与数据库连接该如何设置? 各位大侠们,请问在JAVA中怎样弹出一个消息框。如何弹出一个form.(是否可以用show). 一头雾水,求大家进来帮帮忙 java 堆栈柱状图
一般利用3张表加两个关联表。一个用户表,一个资源表,一个角色表,用户属于某些角色。然后某个角色拥有某些资源。这样非常灵活了。呵呵。还不清楚就去找找关于spring-security的使用。
然后通过把当前用户的所有权限存在session里面 用struts2拦截器对所有操作进行拦截。。判断当前用户是不是拥有访问的权限~~~~大概是这样个思路吧~
empId empName orgId orgSql orgId orgName
1 张三 1 1 1 一级部门
2 李斯 2 1.2 2 二级部门
3 王五 3 1.2.3 3 三级部门二级部门是一级部门的下级部门,三级部门是二级部门的下级部门
查张三及张三下级部门的人员:
select * emp from emp where orgId like orgSql like '1%'不知对楼主是否有帮助?
这个思路很好啊,那个部门表里不要加个parentId 吗,要不然你怎么 判断那个是下级部门,还有那个emp表中,orgSql 这个字段,1.2 这是什么意思。可以这么标识吗,真没用过,哈哈,求教育了
并没有这么简单
当查询部门下所有员工的考勤信息的时候 ,没问题当部门经理查询他部门下面某一个人的考勤信息的时候,是不是要传递一个员工id过去。如果他传递别的部门的员工id过去 , 那不是违背了只能查询自己部门员工考勤的原则了。
如果部门下还有部门,那种sql怎么写呢
如果你没用到开源的权限框架,写个filter 去过滤一下“查询部门员工的考勤情况”的这个请求不就行了?
直接检查一下请求的用户是不是这个部门的经理,就行了吧?
请找出该经理的部门,然后对比一下,是不是本部门或者子部门就OK了吧? 还是说我不理解你问的问题。