人员管理体系: 管理组 - 角色 - 人员 权限管理以角色为粒度 目标为每个“角色”配置后台菜单显示权限、每个页面的增删改查权限(如果用得到的话)、每个自定义按钮权限。 RIGHTS:菜单显示权限 XX_QX: 页面增删改查权限
权限值计算:
/**
* 利用BigInteger对权限进行2的权的和计算
* @param rights String型权限编码数组 页面的id集合
* @return 2的权的和
*/
public static BigInteger sumRights(String[] rights){
BigInteger num = new BigInteger("0");
for(int i=0; i<rights.length; i++){
num = num.setBit(Integer.parseInt(rights[i]));
}
return num;
}
权限验证:
/**
* 测试是否具有指定编码的权限
* @param sum 记录的权限值
* @param targetRights 页面id
* @return
*/
public static boolean testRights(String sum,String targetRights){
if(Tools.isEmpty(sum))
return false;
return testRights(new BigInteger(sum),targetRights);
}
角色的按钮权限 需要一张关联表,有对应关系则有权限。
web中将登陆后将按钮权限和页面权限去出放入session。 进入每个页面前通过拦截器,根据页面权限计算出当前页面的增删改查权限,放入session中。