Beispiel #1
0
 /**
  * 判断用户是不是拥有某权限,如果有返回ture;否则,返回false。
  *
  * @param companyId
  * @param loginName
  * @param departmentName
  * @return 用户拥有某权限,返回ture;否则,返回false。
  */
 public static boolean userHaveRole(Long companyId, String loginName, String roleName) {
   // 获得子系统的id集合
   BusinessSystemManager businessSystemManager =
       (BusinessSystemManager) ContextUtils.getBean("businessSystemManager");
   List<Long> subSystemIds =
       businessSystemManager.getSystemIdsByParentCode(ContextUtils.getSystemCode());
   if (ContextUtils.getCompanyId() == null) {
     ThreadParameters parameters = new ThreadParameters(companyId);
     ParameterUtils.setParameters(parameters);
   }
   Set<Role> roles = ApiFactory.getAcsService().getRolesByUser(loginName);
   for (Role role : roles) {
     if (role.getName().equals(roleName)) {
       boolean result = validateRole(role, subSystemIds);
       if (result) {
         return result;
       } else {
         continue;
       }
     }
   }
   return false;
 }
Beispiel #2
0
 private static boolean validateRole(Role role, List<Long> subSystemIds) {
   BusinessSystem system = role.getBusinessSystem();
   if (system != null) {
     if (subSystemIds.contains(system.getId())) { // 但前系统是子系统,且角色所在的系统包含在子系统集合中
       return true;
     } else {
       if (subSystemIds.size() <= 0) { // 当前系统不是子系统
         if (ContextUtils.getSystemId().equals(system.getId())) {
           return true;
         }
       }
     }
   }
   return false;
 }