/* * 查询权限名称是否存在 */ public boolean boolPermissionName(PmPermission pmPermission) throws Exception { try { String hql = "from PmPermission where permissionName=?"; Object[] obj = new Object[1]; obj[0] = pmPermission.getPermissionName(); List list = this.query(hql, obj); if (list != null && list.size() > 0) { return false; } } catch (Exception e) { throw e; } return true; }
/* * 传入permission对象的permissionId来查询权限对象 */ public PmPermission getPermissionId(PmPermission permission) throws Exception { try { String hql = "from PmPermission where permissionId=?"; Object[] obj = new Object[1]; obj[0] = permission.getPermissionId(); List list = this.query(hql, obj); if (list != null && list.size() > 0) { // 获得集合中的第一个permission对象 return (PmPermission) list.get(0); } } catch (Exception e) { throw e; } return null; }
/* * 根据用户来获取用户的权限 * prur 传入一个用户编号 * pp传入一个父节点编号 */ public List<PmPermission> getUserPermission(PmRUserRole prur, PmPermission pp) throws Exception { StringBuffer sb = new StringBuffer(); sb.append("from PmPermission where permissionId in(select rolePermissionPid "); sb.append("from PmRRolePermissioin where rolePermissionRid in "); sb.append( "(select roleUserRid from PmRUserRole where roleUserUid=?)) and permissionParentId=? "); Object[] obj = new Object[2]; obj[0] = prur.getRoleUserUid(); obj[1] = pp.getPermissionParentId(); if (prur != null) { List<PmPermission> listPermission = (List<PmPermission>) this.query(sb.toString(), obj); if (listPermission != null && listPermission.size() > 0) { return listPermission; } } return null; }
/* * 查询用户的单个角色 */ public boolean boolUserPermission(PmRUserRole prur, PmPermission pp) throws Exception { StringBuffer sb = new StringBuffer(); sb.append( "select count(*) as count from pm_r_user_role prur LEFT JOIN pm_r_role_permissioin prrp on prur.ROLE_USER_RID=prrp.ROLE_PERMISSION_RID"); sb.append(" LEFT JOIN pm_permission pp on pp.PERMISSION_ID=prrp.ROLE_PERMISSION_PID"); sb.append(" where prur.ROLE_USER_UID=? and pp.PERMISSION_URI=?"); Object[] obj = new Object[2]; obj[0] = prur.getRoleUserUid(); obj[1] = pp.getPermissionUri(); // 判断传入参数是否为空,查询用户和uri是否存在 if (prur != null && pp != null) { List<Map> listCount = (List<Map>) this.executeQuery(sb.toString(), obj); // 返回的记录数是否大于0 if (listCount != null && listCount.size() > 0) { if (Integer.parseInt(listCount.get(0).get("count").toString()) > 0) { return true; } } } return false; }