关于系统权限分配

 

我们在做应用开发的时候很经常的要用到权限的控制,如果哪些用户可以查看这个菜单,用户能在某个菜单有看到哪些数据,用户在这个菜单下所能进行的操作是什么。这里把系统权限分配分为三个方面:
一:菜单权限分配
指的是哪些用户可以查看哪些菜单。
二:业务数据权限分配
用户能在某个菜单有看到哪些数据。
三:角色权限分配
         指的是用户在某些菜单下所能进行的操作是什么,是否有增删改查的操作。
根据上述设计,用户的权限判断整体流程如下:
1、   根据用户的菜单权限判断用户是否有访问该菜单的权限;
2、   根据用户所在的部门号、部门从属关系、共享部门,取得用户所能访问的部门号集合,根据这个集合显示业务数据;
3、   根据用户的工号和角色,判断用户在该菜单项所能进行的操作。
现对于流程的第一第二步骤先不考虑,我们只考虑第三步骤,如何实现呢?
实现的整体思路是:用户 —> 用户组 —> 用户组在菜单下的权限。即首先根据登录用户得到从属于哪个用户组,得到这个用户组可以操作哪些菜单项,同时得到用户组的操作权限。最后得到登录的用户在这个菜单下所拥有的操作权限。
通过上面的整体思路可能知道这个过程不难,只是入库和读取数据的问题。这里,我们只对 java 程序的代码做些简要的说明。
首先我们写一个类,保存用户在某个菜单的操作权限,如下:
// 用户权限类
public class Pub_role_right
{
         private boolean ADD;
         private boolean DEL;   
         private boolean MODIFY;  
         private boolean QUERY;    
         public boolean isADD() {
                   return ADD;
         }
         public void setADD(boolean add) {
                   ADD = add;
         }
         public boolean isDEL() {
                   return DEL;
         }
         public void setDEL(boolean del) {
                   DEL = del;
         }
         public boolean isMODIFY() {
                   return MODIFY;
         }
         public void setMODIFY(boolean modify) {
                  MODIFY = modify;
         }
         public boolean isQUERY() {
                   return QUERY;
         }
         public void setQUERY(boolean query) {
                   QUERY = query;
         }
}
然后根据用户的 ID 和操作的菜单到数据库取得这个用户在这个菜单下的权限,保存在 Pub_role_right 里,如下:
//_str 为从数据库取得的结果
Pub_role_right _right = new Pub_role_right();
if(_str.indexOf(" 增加 ")!=-1) _right.setADD(true); else _right.setADD(false);
if(_str.indexOf(" 删除 ")!=-1) _right.setDEL(true); else _right.setDEL(false);
if(_str.indexOf(" 修改 ")!=-1) _right.setMODIFY(true); else _right.setMODIFY(false);
if(_str.indexOf(" 查找 ")!=-1) _right.setQUERY(true); else _right.setQUERY(false);
这时候这个类保存了用户在菜单下的的操作权限,我们要用到权限时,只要调用这个方法就可以了,比如在修改操作时,用于权限判断的代码如下:
if(_roleright.isModify()==false){
// 。。。。。
}else{
// 。。。。。
}
------------------------the end------------------------
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值