这两天做完了以前,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;
}
}