一个web系统,有赋予角色和赋予权限,现在系统只登陆根据角色显示的菜单,如果我想对某个用户的权限增加,并且增加的权限是大于用户的角色的,应该怎么来操作,让该用户进去既能显示当前角色有的菜单也能看到新增的权限菜单呢,表应该如何设计,或者提高哈思路!!!

解决方案 »

  1.   

    在数据库里要有一张权限表,还有一个授权表,授权表体现某个人 id和权限id的关联.也要以再建一个组表,这个组存的是一组权限,将组号授予某个用户时,这个用户自动拥有这个组的所有权限.总之,数据库设计合理的话,实现起来很简单.主要想想数据库的设计.
      

  2.   

    对于超级管理员来说,只要设定一个 sys_admins 的角色就可以了,并不需要在角色权限中添加对应关系。由于 sys_admins 拥有所有的权限,因此也没必要画蛇添足去添加这个角色的权限对应关系了。对于这个角色做特殊处理,
    比如说先检查角色,如果角色中含有 sys_admins 就直接返回 true,以示拥有所有权限。
      

  3.   

    LZ的意思是:可以直接给用户赋权限(不用通过给角色赋权限,然后给用户赋角色),对吗?增加一个:用户权限表就可以啦。字段信息: 用户id,  权限id 。这个非常简单。困难的是细粒度权限,也就是数据级权限。比如:
    1 数据实例级别的访问控制。例如不同级别的审核员的审核不同金额的订单数据;
    2 数据字段级别的访问控制。例如销售部所以员工都能查看客户信息,但只有该客户的客户经理才能够查看联系方式;
    可以参考一下Metadmin产品,专门管理权限的。目前提供了试用版下载。地址是:www.metadmin.com