public GSUser searchByName(String name) { Search search = new Search(); search.addFilter(new Filter("username", name)); List<GSUser> users = search(search); if(users.isEmpty()) return null; else if(users.size() > 1) throw new IllegalArgumentException("Given filter ("+name+") returns too many users ("+users.size()+")"); GSUser user = users.get(0); return user; }
public GSUser searchByName(String name) { Search search = new Search(); search.addFilter(new Filter("username", name)); List<GSUser> users = search(search); if(users.isEmpty()) return null; else if(users.size() > 1) throw new IllegalArgumentException("Given filter ("+name+") returns too many users ("+users.size()+")"); GSUser user = users.get(0); return user; }
@Override public ShortAdminRule getRuleByPriority(long priority) throws BadRequestServiceEx { Search searchCriteria = new Search(AdminRule.class); searchCriteria.addFilter(Filter.equal("priority", priority)); List<AdminRule> found = ruleDAO.search(searchCriteria); if(found.isEmpty()) return null; if(found.size() > 1) { LOGGER.error("Unexpected rule count for priority " + priority + " : " + found); } return new ShortAdminRule(found.get(0)); }
@Override public void deleteRulesByUser(String username) throws NotFoundServiceEx { Search searchCriteria = new Search(AdminRule.class); searchCriteria.addFilter(Filter.equal("username", username)); List<AdminRule> list = ruleDAO.search(searchCriteria); if(LOGGER.isInfoEnabled()) LOGGER.info("Removing "+list.size()+" AdminRule for user " + username); for (AdminRule rule : list) { if(LOGGER.isInfoEnabled()) LOGGER.info("Removing rule for user " + username+": " + rule); ruleDAO.remove(rule); } }
@Override public void deleteRulesByUser(String username) throws NotFoundServiceEx { Search searchCriteria = new Search(Rule.class); searchCriteria.addFilter(Filter.equal("username", username)); List<Rule> list = ruleDAO.search(searchCriteria); if(LOGGER.isInfoEnabled()) LOGGER.info("Removing "+list.size()+" rules for user " + username); for (Rule rule : list) { if(LOGGER.isInfoEnabled()) LOGGER.info("Removing rule for user " + username+": " + rule); ruleDAO.remove(rule); } }
@Override public ShortRule getRuleByPriority(long priority) throws BadRequestServiceEx { Search searchCriteria = new Search(Rule.class); searchCriteria.addFilter(Filter.equal("priority", priority)); List<Rule> found = ruleDAO.search(searchCriteria); if(found.isEmpty()) return null; if(found.size() > 1) { LOGGER.error("Unexpected rule count for priority " + priority + " : " + found); } return new ShortRule(found.get(0)); }
@Override public void deleteRulesByInstance(long instanceId) throws NotFoundServiceEx { Search searchCriteria = new Search(AdminRule.class); searchCriteria.addFilter(Filter.equal("instance.id", instanceId)); List<AdminRule> list = ruleDAO.search(searchCriteria); for (AdminRule rule : list) { if(LOGGER.isInfoEnabled()) LOGGER.info("Removing AdminRule for instance " + instanceId+": " + rule); ruleDAO.remove(rule); } }
@Override public void deleteRulesByInstance(long instanceId) throws NotFoundServiceEx { Search searchCriteria = new Search(Rule.class); searchCriteria.addFilter(Filter.equal("instance.id", instanceId)); List<Rule> list = ruleDAO.search(searchCriteria); for (Rule rule : list) { if(LOGGER.isInfoEnabled()) LOGGER.info("Removing rule for instance " + instanceId+": " + rule); ruleDAO.remove(rule); } }
@Override public void deleteRulesByRole(String rolename) throws NotFoundServiceEx { Search searchCriteria = new Search(AdminRule.class); searchCriteria.addFilter(Filter.equal("rolename", rolename)); List<AdminRule> list = ruleDAO.search(searchCriteria); for (AdminRule rule : list) { if(LOGGER.isInfoEnabled()) LOGGER.info("Removing rule for role " + rolename+": " + rule); ruleDAO.remove(rule); } }
/** * @param filter * @return Search * @throws BadRequestServiceEx * @throws InternalErrorServiceEx */ public static Search convert(SearchFilter filter) throws BadRequestServiceEx, InternalErrorServiceEx { SearchConverter sc = new SearchConverter(); filter.accept(sc); Search trgSearch = new Search(Resource.class); trgSearch.addFilter(sc.trgFilter); if (LOGGER.isDebugEnabled()) { LOGGER.debug("TRG Search --> " + trgSearch); } return trgSearch; }
@Override public void deleteRulesByRole(String rolename) throws NotFoundServiceEx { Search searchCriteria = new Search(Rule.class); searchCriteria.addFilter(Filter.equal("rolename", rolename)); List<Rule> list = ruleDAO.search(searchCriteria); for (Rule rule : list) { if(LOGGER.isInfoEnabled()) LOGGER.info("Removing rule for role " + rolename+": " + rule); ruleDAO.remove(rule); } }
@Override public Resource findByName(String resourceName) { Search searchCriteria = new Search(Resource.class); Filter filter = Filter.equal("name", resourceName); searchCriteria.addFilter(filter); Resource foundResource = null; try { foundResource = super.searchUnique(searchCriteria); } catch (NoResultException ex) { // I ignore the exception and return null on purpose, mimicking the behavior of ResourceDAO#find(java.lang.Long) foundResource = null; } return foundResource; }
/** * @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); }
/** * @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<ShortRule> getRulesByPriority(long priority, Integer page, Integer entries) { Search searchCriteria = new Search(Rule.class); searchCriteria.addFilter(Filter.greaterOrEqual("priority", priority)); searchCriteria.addSortAsc("priority"); addPagingConstraints(searchCriteria, page, entries); List<Rule> found = ruleDAO.search(searchCriteria); return convertToShortList(found); }
@Override public List<ShortAdminRule> getRulesByPriority(long priority, Integer page, Integer entries) { Search searchCriteria = new Search(AdminRule.class); searchCriteria.addFilter(Filter.greaterOrEqual("priority", priority)); searchCriteria.addSortAsc("priority"); addPagingConstraints(searchCriteria, page, entries); List<AdminRule> found = ruleDAO.search(searchCriteria); return convertToShortList(found); }
@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); }
@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 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<Resource> findResources(List<Long> resourcesIds) { Search search = new Search(Resource.class); Filter filter = Filter.in("id", resourcesIds); search.addFilter(filter); List<Resource> resourceToSet = super.search(search); //Initialize Lazy collection for(Resource resource : resourceToSet){ if(!Hibernate.isInitialized(resource.getSecurity())){ Hibernate.initialize(resource.getSecurity()); } } return resourceToSet; }