org.appfuse.dao.UserDao Maven / Gradle / Ivy
package org.appfuse.dao;
import org.appfuse.model.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* User Data Access Object (GenericDao) interface.
*
* @author Matt Raible
*/
public interface UserDao extends GenericDao {
/**
* Gets users information based on login name.
* @param username the user's username
* @return userDetails populated userDetails object
* @throws org.springframework.security.core.userdetails.UsernameNotFoundException thrown when user not found in database
*/
@Transactional
UserDetails loadUserByUsername(String username) throws UsernameNotFoundException;
/**
* Gets a list of users ordered by the uppercase version of their username.
*
* @return List populated list of users
*/
List getUsers();
/**
* Saves a user's information.
* @param user the object to be saved
* @return the persisted User object
*/
User saveUser(User user);
/**
* Retrieves the password in DB for a user
* @param username the user's username
* @return the password in DB, if the user is already persisted
*/
@Transactional(propagation = Propagation.NOT_SUPPORTED)
String getUserPassword(String username);
}