public List<WindowBo> getWindows(String lang) { List<WindowBo> windowBoList = new ArrayList<>(); Search search = new Search(); search.addFilterEqual("lang", lang); search.addFilterEqual("windowPo.isactive", "Y"); search.addField("windowId").addField("name"); search.setResultMode(RESULT_MAP); List<Map> windowTrlPoList = windowTrlDao.search(search); windowTrlPoList.forEach(e -> { WindowBo windowBo = new WindowBo(); windowBo.setWindowId((Integer) e.get("windowId")); windowBo.setWindowName((String) e.get("name")); windowBoList.add(windowBo); }); return windowBoList; }
@Override public List<String> findResourceNamesMatchingPattern(String pattern) { Search searchCriteria = new Search(Resource.class); searchCriteria.addField("name"); searchCriteria.addFilterLike("name", pattern); searchCriteria.setResultMode(Search.RESULT_SINGLE); List<String> resourceNames = super.search(searchCriteria); return resourceNames; }
/** * @param resourceId * @return List<SecurityRule> * @deprecated move to SecurityDAO */ @Deprecated @Override public List<SecurityRule> findSecurityRules(long resourceId) { Search searchCriteria = new Search(Resource.class); searchCriteria.addField("security"); Filter securityFilter = Filter.some("security", Filter.equal("resource.id", resourceId)); searchCriteria.addFilter(securityFilter); return super.search(searchCriteria); }
@Deprecated @Override public List<SecurityRule> findGroupSecurityRule(List<String> groupNames, long resourceId) { Search searchCriteria = new Search(Resource.class); searchCriteria.addField("security"); Filter securityFilter = Filter.some("security", Filter.equal("resource.id", resourceId)); //Advanced filters Filters doesn't work, I don't know why... // Filter securityFilter = Filter.some( // "security", // Filter.and(Filter.equal("resource.id", resourceId), // Filter.in("group.groupName", groupNames), // Filter.isNotEmpty("group"))); searchCriteria.addFilter(securityFilter); List<SecurityRule> rules = super.search(searchCriteria); //WORKAROUND List<SecurityRule> filteredRules = new ArrayList<SecurityRule>(); for(SecurityRule sr : rules){ if(sr.getGroup() != null && groupNames.contains(sr.getGroup().getGroupName())){ filteredRules.add(sr); } } return filteredRules; }
/** * @param resourceId * @return List<Attribute> */ @Override public List<Attribute> findAttributes(long resourceId) { Search searchCriteria = new Search(Resource.class); searchCriteria.addField("attribute"); Filter securityFilter = Filter.some("attribute", Filter.equal("resource.id", resourceId)); searchCriteria.addFilter(securityFilter); return super.search(searchCriteria); }
@Override public List<SecurityRule> findGroupSecurityRule(List<String> userGroups, long resourceId) { Search searchCriteria = new Search(StoredData.class); //get all the security rules searchCriteria.addField("resource.security"); Filter securityFilter = Filter.some( "resource.security",Filter.equal("resource.security.resource.id", resourceId) ); searchCriteria.addFilter(securityFilter); List<SecurityRule> rules = super.search(searchCriteria); //WORKAROUND (See ResourceDAOImpl) List<SecurityRule> filteredRules = new ArrayList<SecurityRule>(); for(SecurityRule sr : rules){ if(sr.getGroup() != null && userGroups.contains(sr.getGroup().getGroupName())){ filteredRules.add(sr); } } return filteredRules; }
/** * @param userName * @param resourceId * @return List<SecurityRule> * @deprecated move to SecurityDAO */ @Deprecated @Override public List<SecurityRule> findUserSecurityRule(String userName, long resourceId) { Search searchCriteria = new Search(Resource.class); searchCriteria.addField("security"); Filter securityFilter = Filter.some( "security", Filter.and(Filter.equal("resource.id", resourceId), Filter.equal("user.name", userName))); searchCriteria.addFilter(securityFilter); return super.search(searchCriteria); }
@Override public List<SecurityRule> findUserSecurityRule(String userName, long categoryId) { Search searchCriteria = new Search(Category.class); searchCriteria.addField("security"); Filter securityFilter = Filter.some( "security", Filter.and(Filter.equal("category.id", categoryId), Filter.equal("user.name", userName))); searchCriteria.addFilter(securityFilter); return super.search(searchCriteria); }
@Override public List<SecurityRule> findGroupSecurityRule(List<String> userGroups, long categoryId) { Search searchCriteria = new Search(Category.class); searchCriteria.addField("security"); Filter securityFilter = Filter.some( "security", Filter.and(Filter.equal("category.id", categoryId), Filter.equal("user.groups.groupName", userGroups))); searchCriteria.addFilter(securityFilter); return super.search(searchCriteria); }
@Override public List<SecurityRule> findUserSecurityRule(String name, long resourceId) { Search searchCriteria = new Search(StoredData.class); searchCriteria.addField("resource.security"); Filter securityFilter = Filter.some( "resource.security", Filter.and(Filter.equal("resource.security.resource.id", resourceId), Filter.equal("resource.security.user.name", name))); searchCriteria.addFilter(securityFilter); return super.search(searchCriteria); }
} else { // some rules in, the requested postion is at bottom Search s1 = new Search(clazz); s1.addField("priority", Field.OP_MAX); long maxPri = (Long)searchUnique(s1); entity.setPriority(maxPri+1);