日期:2014-05-19  浏览次数:20681 次

一个关于权限控制的问题
1。问题
        我做的一个项目,他的导航栏是可以控制的,保存在数据库中,每一栏有相应的功能,例如:用户列表有增删改,考勤统计只有查询功能。我现在要对各个模块的每个功能进行控制,例有的用户在用户列表里只能修改,有的用户在用户列表里只能新增。
2。数据库表
      ID                         唯一标识,主键
      MenuCode             菜单代码
      ParentId             上级菜单标识
      Right                   可拥有权限值
      MenuName             菜单名称
      Url                       连接路径
      MenuLevel           菜单级别
3.操作思路
      要求把这些菜单以树的形式显示,并根据Right(可拥有权限)显示每个菜单可执行的操作(增、删、改和查询),在相应的操作(增、删、改和查)前的复选框前打勾,对用户进行授权,请问该符合实现

        树形式:
              权限管理
                    系统管理
                        用户管理     ([]增   []删   []改)
                        角色管理     ([]增   []删   []改)
                    财务管理
                        收款统计     ([]查询)
                        月度营收目标     ([]查询)

以上树形式中的中括号代表复选矿,例我现在对用户管理中的“增”前打勾,则表示指定的用户在用户管理里面只能执行“增”操作,依次类推,请问该如何实现,望大家踊跃帮忙,兄弟不胜感激


------解决方案--------------------
将“用户管理”作为一个对象【可以做到系统复用】,将“权限”作为该对象的一个属性。
假设该属性为int型,就通过微操作来判断该MenuItem是否该显示。

新增: 2^0 = 1,
删除:2^1 = 2,
修改:2^2 = 4,
如果有新增、修改的权限 该属性值为5
判断: 5 & 1 = 1 表示有新增操作。
------解决方案--------------------
帮顶