人员管理体系: 管理组 - 角色 - 人员 权限管理以角色为粒度 目标为每一个“角色”配置后台菜单显示权限、每一个页面的增删改查权限(若是用获得的话)、每一个自定义按钮权限。 RIGHTS:菜单显示权限 XX_QX: 页面增删改查权限java
权限值计算:web
/** * 利用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中。session