package org.ovirt.engine.core.dao; import java.util.List; import org.ovirt.engine.core.common.businessentities.aaa.DbUser; import org.ovirt.engine.core.compat.Guid; /** * {@code DbUserDao} defines a type for performing CRUD operations on instances of {@link DbUser}. */ public interface DbUserDao extends Dao, SearchDao<DbUser> { /** * Retrieves the suser with the specified id. * * @param id * the id * @return the user, or {@code null} if the id was invalid */ DbUser get(Guid id); /** * Retrieves the user with the specified id. * * @param id the id of user * @param isFiltered user level / admin level * @return the user, or {@code null} if the id was invalid */ DbUser get(Guid id, boolean isFiltered); /** * Retrieves a user by username. * * @param username * the username * @return the user */ DbUser getByUsernameAndDomain(String username, String domainName); /** * Retrieves a user by domain name and external identifier. * * @param domain the name of the domain * @param externalId the external identifier * @return a reference to the user or {@code null} if no such user * can be found in the database */ DbUser getByExternalId(String domain, String externalId); /** * Retrieves a user that matches either the internal or external identifiers given. * * @param id the internal identifier * @param domain the name of the domain * @param externalId the external identifier * @return a reference to the user or {@code null} if no such user * can be found in the database */ DbUser getByIdOrExternalId(Guid id, String domain, String externalId); /** * Retrieves all users associated with the specified virtual machine. * * @param id * the VM id * @return the list of users */ List<DbUser> getAllForVm(Guid id); /** * Retrieves all defined used. * * @return the collection of all users */ List<DbUser> getAll(); /** * Retrieves all users * * @return the list of entries */ List<DbUser> getAll(Guid userID, boolean isFiltered); /** * Saves the user. * * @param user * the user */ void save(DbUser user); /** * Updates the specified user in the database. * * @param user * the user */ void update(DbUser user); /** * Removes the user with the specified id. * * @param user * the user id */ void remove(Guid user); /** * Saves or updates the user. * * @param user * the user */ void saveOrUpdate(DbUser user); /** * User presentation in GUI have a distinction between ADMIN/USER user. The distinction is determined by their * permissions or their group's permissions. when Permission with the role type Admin is found, set the DbUser * isAdmin flag to ADMIN Type or to USER otherwise. Make the change only if the value is different to what it is * saved to db */ void updateLastAdminCheckStatus(Guid... userIds); }