UserBeanLocal.java 2.18 KB
package fi.insomnia.bortal.beans;

import java.io.IOException;
import java.util.List;

import javax.ejb.Local;

import fi.insomnia.bortal.model.EventUser;
import fi.insomnia.bortal.model.GroupMembership;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.model.UserImage;
import fi.insomnia.bortal.util.UserSearchQuery;
import fi.insomnia.bortal.utilities.SearchQuery;
import fi.insomnia.bortal.utilities.SearchResult;

@Local
public interface UserBeanLocal {

	List<EventUser> getUsers();

	SearchResult<User> getUsers(SearchQuery search);

	SearchResult<User> getEventUsers(SearchQuery search);

	EventUser mergeChanges(EventUser user);

	UserImage uploadImage(EventUser user, String contentType, byte[] image, String filename, String description);

	UserImage findUserImage(int id);

	void createNewUser(EventUser user, String password);

	User findPasswordResetUser(Integer id, String hash);

	boolean resetPassword(User user, String password, String hash);

	boolean initPasswordReset(String user, String mailpath);

	/**
	 * Search EventUser entity by User entity ID
	 * 
	 * @param userid
	 *            ID of the User entity to be searcher
	 * @return
	 */
	EventUser findByUserId(Integer userid);

	EventUser findByEventUserId(Integer integer);

	GroupMembership findToken(String token);

	void createFromToken(EventUser user, String token);

	UserImage findUserimageFORCE(Integer id);

	UserImage saveCroppedImage(UserImage currentImage, int left, int top, int width, int height) throws IOException;

	EventUser createNewUser(User usr);

	boolean userExists(String login);

	boolean invite(String invitemail, String url);

	EventUser mergeEventUserChanges(EventUser shoppingUser);

	List<Role> findUsersRoles(EventUser u);

	/**
	 * NOTICE! If the user parameter is a persisted object the returned
	 * EventUser has a reloaded user, eg changes to the User object are lost!
	 * 
	 * @param user
	 * @return
	 */
	EventUser getEventUser(User user);

	EventUser validateUser(String username, String password);

	EventUser getUserByBarcode(String barcode);

	SearchResult<EventUser> getThisEventsUsers(UserSearchQuery searchQuery);

	void submitFeedback(String feedback);

}