关于用Java程序实现8421码权限管理 -第二部分

这两天做完了以前,CRM项目中,设计权限这快的代码,仅供大家学习参考。

本权限管理部分设计三部分:

第一部分 数据库部分

第二部分 权限类

第三部分 分配权限部分

第四部分 页面控制部分

在这里我主要设计后三部分原码:

 

权限类设计原码:

 

package com.qizhi.common;
/**
 * 全局常量
 * 
 */
public interface Global {
 
 
 /**
  * 用户键值
  */
 public static final String LOGIN_USER_KEY="login";
 /**
  * 菜单键值
  */
 public static final String LOGIN_MENU_KEY="MENU_STRING";

 
 /**
  * 验证码键值
  */
 public static final String LOGIN_VALID_NO="validKey";
 /**
  * 验证码错误
  */
 public static final String LOGIN_VALID_ERROR="VALID_ERROR";
 /**
  * 验证码错误值
  */
 public static final int LOGIN_VALID_VAL=3;
 /**
  * 登录成功
  */
 public static final int Login_SUCCEED_VAL=0;
 
 
 /**
  * 登录失败或异常
  */
 public static final String Login_UNAME_ERROR="Login_UNAME_ERROR";
 public static final String Login_PASS_ERROR="Login_PASS_ERROR";
 
 
 /**
  * 用户名验证失败
  */
 public static final int LOGIN_USERNAME_FAIL_VAL=1;
 /**
  * 密码验证失败
  */
 public static final int LOGIN_PASSWORD_FAIL_VAL=2;
 
 
 /**
  * 系统日志
  */
 public static final int LOG_SYS_TYPE=0;
 /**
  * 操作日志
  */
 public static final int LOG_OP_TYPE=1;
 
 
 /**
  * 没有权限
  */
 public final static int NO_PRIVILEGE = 0; //0:无权限
 /**
  * 增加权限
  */
 public static final int USER_ADD_LIMIT=1;
 /**
  * 删除权限
  */
 public static final int USER_DELETE_LIMIT=2;
 /**
  * 修改权限
  */
 public static final int USER_UPDATE_LIMIT=4;
 /**
  * 查询权限
  */
 public static final int USER_FIND_LIMIT=8;
 /**
  * 打印权限
  */
 public static final int USER_PRINT_LIMIT=16;
 /**
  * 分配权限
  */
 public static final int USER_DISTRIBUTE_LIMIT=32;
 /**
  * 批准权限
  */
 public static final int USER_COMFIRM_LIMIT=64;
 /**
  * 特别权限
  */
 public static final int USER_SPECIALTY_LIMIT=128;
 
 /**
  * 管理员权限
  */
 public static final int USER_ADMIN_LIMIT=256;
 /**
  * 下载权限
  */
 public static final int USER_DOWNLOAD_LIMIT=512;
 /**
  * 所有权限
  */
 public static final int USER_ALL_LIMIT=USER_ADD_LIMIT|USER_DELETE_LIMIT|USER_UPDATE_LIMIT|USER_FIND_LIMIT|USER_PRINT_LIMIT|USER_DISTRIBUTE_LIMIT|USER_COMFIRM_LIMIT|USER_SPECIALTY_LIMIT|USER_ADMIN_LIMIT|USER_DOWNLOAD_LIMIT;
    //注:如需增加权限可以在"USER_PRIVILEGE_LIMIT-"后面从字母A开始+字符,值为前次*2依次类推
 
 /**
  * 删除标记
  */
 public static final int DATA_DELETE_FLAG=-1;
 /**
  * 正常
  */
 public static final int DATA_WELL_FLAG=0;
 /**
  * 新创建或未分配
  */
 public static final int DATA_NEW_FLAG=1;
 /**
  * 已分配或已指派
  */
 public static final int DATA_DISTRIBUTE_FLAG=2;
 /**
  * 已处理
  */
 public static final int DATA_OPERATE_FLAG=3;
 /**
  * 已反馈
  */
 public static final int DATA_FEEDBACK_FLAG=4;
 /**
  * 已归档或开发失败
  */
 public static final int DATA_SAVE_FLAG=5;
 
}

 

package com.qizhi.entity;

import com.qizhi.common.Global;
/**
 * 用户权限类
 */
public class Roleright  implements java.io.Serializable {
     private Integer ids  ;
     private Role role  = new Role();
     private Right right  = new Right();
     private Integer rightEdit=0;

    public Integer getRightEdit()
 {
  return rightEdit;
 }


 public void setRightEdit(Integer rightEdit)
 {
  this.rightEdit = rightEdit;
 }


 public Roleright() {
    }

 
    public Roleright(Integer ids) {
        this.ids = ids;
    }
    public Roleright(Integer ids, Role role, Right right,Integer rightEdit) {
       this.ids = ids;
       this.role = role;
       this.right = right;
       this.rightEdit=rightEdit;
    }
  
    public Integer getIds() {
        return this.ids;
    }
   
    public void setIds(Integer ids) {
        this.ids = ids;
    }
    public Role getRole() {
        return this.role;
    }
   
    public void setRole(Role role) {
        this.role = role;
    }
    public Right getRight() {
        return this.right;
    }
   
    public void setRight(Right right) {
        this.right = right;
    }
   
    /**
     * 判断是否具有权限
     * @param privilege
     * @return
     */
    public  boolean isValidPrivilege()
    {
        if ( (rightEdit & Global.USER_ADD_LIMIT) != 0)
        {
                return true;
        }

        if ( (rightEdit & Global.USER_ADMIN_LIMIT) != 0)
        {
                return true;
        }

        if ( (rightEdit & Global.USER_DELETE_LIMIT) != 0)
        {
                return true;
        }

        if ( (rightEdit & Global.USER_COMFIRM_LIMIT) != 0)
        {
                return true;
        }

        if ( (rightEdit & Global.USER_DISTRIBUTE_LIMIT) != 0)
        {
                return true;
        }
       
        if ( (rightEdit & Global.USER_DOWNLOAD_LIMIT) != 0)
        {
                return true;
        }
       
        if ( (rightEdit & Global.USER_FIND_LIMIT) != 0)
        {
                return true;
        }
       
        if ( (rightEdit & Global.USER_PRINT_LIMIT) != 0)
        {
                return true;
        }
       
        if ( (rightEdit & Global.USER_SPECIALTY_LIMIT) != 0)
        {
                return true;
        }
       
        if ( (rightEdit & Global.USER_UPDATE_LIMIT) != 0)
        {
                return true;
        }
 
        return false;
    }

    /**
  * 没有权限
  * @return
  */
 public boolean getNONEVal(){
  return ((rightEdit & Global.USER_ALL_LIMIT)==Global.USER_ALL_LIMIT)?true:false;
 }
   
    /**
  * 下载权限
  * @return
  */
 public boolean getDownLoadVal(){
  return ((rightEdit & Global.USER_DOWNLOAD_LIMIT)==Global.USER_DOWNLOAD_LIMIT)?true:false;
 }
   
   
    /**
  * 增加权限
  * @return
  */
 public boolean getAddVal(){
  return ((rightEdit & Global.USER_ADD_LIMIT)==Global.USER_ADD_LIMIT)?true:false;
 }
 
 /**
  * 删除权限
  * @return
  */
 public boolean getDelVal(){
  return ((rightEdit & Global.USER_DELETE_LIMIT)==Global.USER_DELETE_LIMIT)?true:false;
 }
 
 /**
  * 改权限
  * @return
  */
 public boolean getEditVal(){
  return ((rightEdit & Global.USER_UPDATE_LIMIT)==Global.USER_UPDATE_LIMIT)?true:false;
 }
 
 /**
  * 查权限
  * @return
  */
 public boolean getFindVal(){
  return ((rightEdit & Global.USER_FIND_LIMIT)==Global.USER_FIND_LIMIT)?true:false;
 }
 
 /**
  * 打印权限
  * @return
  */
 public boolean getPrintVal(){
  return ((rightEdit & Global.USER_PRINT_LIMIT)==Global.USER_PRINT_LIMIT)?true:false;
 }
 
 /**
  * 分配权限
  * @return
  */
 public boolean getDisVal(){
  return ((rightEdit & Global.USER_DISTRIBUTE_LIMIT)==Global.USER_DISTRIBUTE_LIMIT)?true:false;
 }
 
 /**
  * 批准权限
  * @return
  */
 public boolean getCfmVal(){
  return ((rightEdit & Global.USER_COMFIRM_LIMIT)==Global.USER_COMFIRM_LIMIT)?true:false;
 }
 
 /**
  * 特别权限
  * @return
  */
 public boolean getSpecVal(){
  return ((rightEdit & Global.USER_SPECIALTY_LIMIT)==Global.USER_SPECIALTY_LIMIT)?true:false;
 }
 
 /**
  * 管理员权限
  * @return
  */
 public boolean getAdminVal(){
  return ((rightEdit & Global.USER_ADMIN_LIMIT)==Global.USER_ADMIN_LIMIT)?true:false;
 }
 
 /**
  * 所有权限
  * @return
  */
 public boolean getAllLimit(){
  return ((rightEdit & Global.USER_ALL_LIMIT)!=0)?true:false;
 }

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值