package eu.europeana.cloud.service.aas.authentication;
import eu.europeana.cloud.common.model.User;
import eu.europeana.cloud.service.aas.authentication.exception.DatabaseConnectionException;
import eu.europeana.cloud.service.aas.authentication.exception.InvalidPasswordException;
import eu.europeana.cloud.service.aas.authentication.exception.InvalidUsernameException;
import eu.europeana.cloud.service.aas.authentication.exception.UserExistsException;
import eu.europeana.cloud.service.aas.authentication.exception.UserDoesNotExistException;
/**
* Specifies functionality for authentication.
*
* @author Markus Muhr (markus.muhr@theeuropeanlibrary.org)
*/
public interface AuthenticationService {
void createUser(final User user) throws DatabaseConnectionException, UserExistsException,
InvalidUsernameException, InvalidPasswordException;
void updateUser(final User user)
throws DatabaseConnectionException, UserDoesNotExistException,
InvalidPasswordException;
void deleteUser(final String userName) throws DatabaseConnectionException, UserDoesNotExistException;
User getUser(String userName) throws DatabaseConnectionException, UserDoesNotExistException;
}