我现在遇到个权限控制的问题,部门的经理去查询部门员工的考勤情况,我怎么限制这个权限,让他只能查自己部门的,不能查其他部门或整个企业。大家帮个忙,权限这块真不懂,说出思路也行,给去表结构更好,谢谢

解决方案 »

  1.   

    用spring-security去控制,方便安全。
    一般利用3张表加两个关联表。一个用户表,一个资源表,一个角色表,用户属于某些角色。然后某个角色拥有某些资源。这样非常灵活了。呵呵。还不清楚就去找找关于spring-security的使用。
      

  2.   

    比如呢,我现在是分行经理,我想查分行员工信息,我是不是要在某一张表中来表示管理员的级别,还是直接用sql ,可以告诉我下,你的sql具体怎么实现吗
      

  3.   

    用户表  角色表  权限表   ~~其中用户表和角色表多对多(两个外键关联)  角色和权限也是多对多~~
    然后通过把当前用户的所有权限存在session里面   用struts2拦截器对所有操作进行拦截。。判断当前用户是不是拥有访问的权限~~~~大概是这样个思路吧~
      

  4.   

    使用Spring的权限控制来弄吧,那个比较简单,网上教程也比较多,推荐《Spring+Security+安全权限管理手册》上面讲这个讲得很详细,慢慢看就懂了,涉及三张表。试试吧
      

  5.   

    好吧,我去试试,谢谢各位了,很多网站的通过等级或积分的不同来判断权限,比如csdn的网站,他的权限控制是什么歌思路呢,
      

  6.   

     lz  试试这个spring security  你可以在配置文件一个个设置权限!或者你在表里面加字段!然后通过这个去控制
      

  7.   

    员工表(emp)                                        部门表(org)
    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%'不知对楼主是否有帮助?
      

  8.   

    控制对象级别的权限访问控制问题,用acl模型设计,即访问控制列表,即是在部门添加一个字段来存储所有能访问该对象的用户,通常是用字符串,然后分号隔开,便于解析;
      

  9.   


    这个思路很好啊,那个部门表里不要加个parentId 吗,要不然你怎么 判断那个是下级部门,还有那个emp表中,orgSql 这个字段,1.2 这是什么意思。可以这么标识吗,真没用过,哈哈,求教育了
      

  10.   

    y用传说中的二进制,比如有这个权限为1,另外个权限为1<<2,还有个权限为1<<3这样就把权限分开了撒,每次要去查询的时候就用自身的权限数比如x&所需权限如果有值即>0就表示有权限!!这个做法超快的哦亲
      

  11.   

    权限,包括操作权限,和数据权限。你所说的应该就是数据权限,如果数据权限是写死的话,可以在员工表加字段标示下,如果做成活的,那就有点麻烦了。必须设计数据权限,根据数据权限生成动态的sql才可以。
      

  12.   


    并没有这么简单
    当查询部门下所有员工的考勤信息的时候 ,没问题当部门经理查询他部门下面某一个人的考勤信息的时候,是不是要传递一个员工id过去。如果他传递别的部门的员工id过去 , 那不是违背了只能查询自己部门员工考勤的原则了。
      

  13.   


    如果部门下还有部门,那种sql怎么写呢
      

  14.   

      要建个组织表,加上组织路径(a/b/c) 然后通过路径 右模糊 查询 当前组织和以下组织
      

  15.   

    你是用什么方式实现权限控制的,url?注解?标签?
    如果你没用到开源的权限框架,写个filter 去过滤一下“查询部门员工的考勤情况”的这个请求不就行了?
    直接检查一下请求的用户是不是这个部门的经理,就行了吧?  
    请找出该经理的部门,然后对比一下,是不是本部门或者子部门就OK了吧? 还是说我不理解你问的问题。
      

  16.   

    如果你用struts,就写个过滤器。如果是针对数据库,写存储过程,就如楼上说,你到底要在什么地方实现,这才是关键,不然我们不知道你到底问的是有关什么的问题。。还是你仅仅就算法而言?
      

  17.   

    我的问题是,这个人的查询权限有多大,他只可以查他的部门和他部门的下级部门,就这个问题,后台用sql来写吧,我是这么想的,
      

  18.   

    谢谢大家了,我的问题解决了,查询权限的控制,只需要在原先显示数据的基础上增加条件,我可以把部门id穿过去,在后台查询数据的时候,用sql来控制,把该部门,下级部门的人员信息都查出来的,然后想查其他的就很容易了,我的用户关联角色,角色关联功能表,都是多对多的,
      

  19.   

    是的,a b 是上级组织  c是当前组织,这样你就不用递归查了,且方便展示