/* (c) 2015 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.geofence.services; import com.googlecode.genericdao.search.Search; import java.util.HashSet; import java.util.List; import java.util.Set; import org.geoserver.geofence.core.dao.GSUserDAO; import org.geoserver.geofence.core.dao.UserGroupDAO; import org.geoserver.geofence.core.model.GSUser; import org.geoserver.geofence.core.model.UserGroup; import org.geoserver.geofence.spi.UserResolver; /** * A UserResolver that uses GeoFence internal DAOs * to retrieve users and roles. * * @author ETj (etj at geo-solutions.it) */ public class DefaultUserResolver implements UserResolver { private GSUserDAO userDAO; private UserGroupDAO userGroupDAO; @Override public boolean existsUser(String username) { return userDAO.getFull(username) != null; } @Override public Set<String> getRoles(String username) { GSUser user = userDAO.getFull(username); Set<String> ret = new HashSet<String>(); for (UserGroup role : user.getGroups()) { ret.add(role.getName()); } return ret; } @Override public boolean existsRole(String rolename) { Search search = new Search(UserGroup.class); search.addFilterEqual("name", rolename); List<UserGroup> groups = userGroupDAO.search(search); return ! groups.isEmpty(); } //========================================================================= public void setGsUserDAO(GSUserDAO userDAO) { this.userDAO = userDAO; } public void setUserGroupDAO(UserGroupDAO userGroupDAO) { this.userGroupDAO = userGroupDAO; } }