Interface UserDAO

All Superinterfaces:
PersistentObjectDAO<User>
All Known Implementing Classes:
HibernateUserDAO

public interface UserDAO extends PersistentObjectDAO<User>
This class is a DAO-service for User-objects.
Version:
1.0
Author:
Michael Scholz, Marco Meschieri
  • Method Details

    • count

      int count(Long tenantId)
      Counts the total number of standard users
      Parameters:
      tenantId - identifier of the tenant
      Returns:
      total number of guest users
    • countGuests

      int countGuests(Long tenantId)
      Counts the total number of guest users
      Parameters:
      tenantId - identifier of the tenant
      Returns:
      total number of guest users
    • findByUsername

      User findByUsername(String username)
      This method finds an User by its username. The search is case sensitive.
      Parameters:
      username - username of wanted User.
      Returns:
      Wanted User or null if user doesn't exist.
    • findByUsernameIgnoreCase

      User findByUsernameIgnoreCase(String username)
      This method finds an User by its username. The search is case insensitive.
      Parameters:
      username - username of wanted User.
      Returns:
      Wanted User or null if user doesn't exist.
    • getUser

      User getUser(String username)
      Depending on the global setting, it invokes findByUsername or findByUsernameIgnoreCase
      Parameters:
      username - The username of the user
      Returns:
      The found user
    • findByLikeUsername

      List<User> findByLikeUsername(String username)
      This method finds an User by username.
      Parameters:
      username - The username of wanted User.
      Returns:
      Collection of selected users.
    • findByName

      List<User> findByName(String name)
      This method finds an User by name.
      Parameters:
      name - The name of wanted User.
      Returns:
      Collection of selected users.
    • findByUsernameAndName

      List<User> findByUsernameAndName(String username, String name)
      This method finds an User by username and name.
      Parameters:
      username - The username of wanted user
      name - The name of wanted user
      Returns:
      Collection of selected users
    • isPasswordExpired

      boolean isPasswordExpired(String username)
      Is password expired.
      Parameters:
      username - Username of the User to be validated.
      Returns:
      True if the password is expired
    • isInactive

      boolean isInactive(String username)
      Checks if a user is inactive, that is a user without interactions in the last X days after it has last enabled. We look at the User.getMaxInactivity() first en then we fallback to the general parameter security.user.maxinactivity
      Parameters:
      username - identifier of the user
      Returns:
      the last interaction time
    • delete

      void delete(long userId, UserHistory transaction) throws PersistenceException
      This method deletes the user object and insert a new user history entry.
      Parameters:
      userId - The id of the user to delete
      transaction - entry to log the event
      Throws:
      PersistenceException - error at database level
    • store

      void store(User user, UserHistory transaction) throws PersistenceException
      This method persists the user object and insert a new user history entry.
      Parameters:
      user - the user to store
      transaction - entry to log the event
      Throws:
      PersistenceException - error at database level
    • findUserSettings

      Map<String,Generic> findUserSettings(long userId, String namePrefix)
      Retrieves the settings for a user. The settings are stored as Generics of type usersetting.
      Parameters:
      userId - Identifier of the user
      namePrefix - Name prefix of the property (optional)
      Returns:
      The map setting_name-generic
    • findAdminUser

      User findAdminUser(String tenantName)
      Retrieve the administrator for the given tenant. The general rule is that the administrator's username is:
      1. admin if the tenant is default
      2. adminTenantname in all other cases
      Parameters:
      tenantName - name of the tenant
      Returns:
      the user to administrate the tenant
    • findByGroup

      Set<User> findByGroup(long groupId)
      Retrieves the users belonging to a given group.
      Parameters:
      groupId - Identifier of the group
      Returns:
      the set of groups