Interface UserService

All Known Implementing Classes:
BackofficeUserService, DefaultUserService, SecureUserService

public interface UserService
Interface for the user service.
Since:
4.0
Spring Bean ID:
userService
  • Method Details

    • getUser

      @Deprecated(since="6.1.0", forRemoval=true) UserModel getUser(String userId)
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 6.1.0 - wrong naming, please usegetUserForUID(String)
      Returns the UserModel by the specified userId
      Parameters:
      userId - the specified userId
      Returns:
      the UserModel
      Throws:
      UnknownIdentifierException - if the user was not found
    • getUserForUID

      UserModel getUserForUID(String userId)
      Returns the UserModel for the specified userId
      Parameters:
      userId - the unique userId of the user
      Returns:
      the UserModel or a subtype of it.
      Throws:
      UnknownIdentifierException - if user was not found
      IllegalArgumentException - if given userId was null
    • getUserForUID

      <T extends UserModel> T getUserForUID(String userId, Class<T> clazz)
      Returns for the specified userId and the specified (result) class the found user in the specified class. Throws exception otherwise.
      Parameters:
      userId - The unique userId of the user to be searched for.
      clazz - The user must match the given class (employee, customer, ...). Can be a UserModel or any subtype of it.
      Throws:
      UnknownIdentifierException - if the user was not found
      IllegalArgumentException - if given userId or given clazz was null
      ClassMismatchException - if a user was found by the given userId but did not match the provided clazz
    • isUserExisting

      boolean isUserExisting(String uid)
      Checks if for the specified uid a user exists in the system.
      Parameters:
      uid - of the user
      Returns:
      true if a user exists, otherwise false
    • getUserGroup

      @Deprecated(since="6.1.0", forRemoval=true) UserGroupModel getUserGroup(String userGroupId)
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 6.1.0 - wrong naming, please usegetUserGroupForUID(String)
      Returns the UserGroupModel by the specified userGroupId
      Parameters:
      userGroupId - the specified userGroupId
      Returns:
      the UserGroupModel
      Throws:
      UnknownIdentifierException - if the userGroup was not found
    • getUserGroupForUID

      UserGroupModel getUserGroupForUID(String uid)
      Returns the UserGroupModel for the specified uid.
      Parameters:
      uid - the unique uid of the group
      Returns:
      the found UserGroupModel (or a subtype of it).
      Throws:
      UnknownIdentifierException - if user group was not found
      IllegalArgumentException - if given uid was null
    • getUserGroupForUID

      <T extends UserGroupModel> T getUserGroupForUID(String uid, Class<T> clazz)
      Returns the UserGroupModel for the specified uid and the specified (result) class.

      The found user group must be an instance of the given class, otherwise an exception is thrown.

      Parameters:
      uid - The unique uid of the user group to be searched for.
      clazz - The user group must match the given class. Can be a UserGroupModel or any subtype of it.
      Returns:
      the found UserGroupModel
      Throws:
      UnknownIdentifierException - if user group was not found
      ClassMismatchException - if a user group was found by the given uid but did not match the provided clazz
      IllegalArgumentException - if given uid or given clazz was null
    • getAllUserGroupsForUser

      Set<UserGroupModel> getAllUserGroupsForUser(UserModel user)
      Gets all user groups for the given user.

      The Set of user groups is collected recursively.

      Parameters:
      user - the given user
      Returns:
      Set of user groups
      Throws:
      IllegalArgumentException - if given user is null
    • getAllUserGroupsForUser

      <T extends UserGroupModel> Set<T> getAllUserGroupsForUser(UserModel user, Class<T> clazz)
      Gets all user groups for the given user and specified (result) class. If the user is in a user group which is not assignable from the given clazz then this group is not in the result set. Use getUserGroupForUID(String) if all groups are needed.

      The Set of user groups is collected recursively.

      Parameters:
      user - the given user
      clazz - the user group must match the given class. Can be a UserGroupModel or any subtype of it.
      Returns:
      Set of user groups which must be instances of the specified result class
      Throws:
      IllegalArgumentException - if given user or given clazz are null
    • getUserAudits

      List<AbstractUserAuditModel> getUserAudits(UserModel user)
      Gets audit information about user previous password hashes. Can be used to implement password policy that does not allow to reuse previous passwords.
      Parameters:
      user -
      Returns:
    • isPasswordIdenticalToAudited

      boolean isPasswordIdenticalToAudited(UserModel user, String plainPassword, UserPasswordChangeAuditModel audit)
      Checks if password is the same as the previous password. Password stored in audit information is hashed so this method hashes plain password and compares them.
      Parameters:
      plainPassword -
      audit -
      Returns:
      true if password is the same as audit, otherwise false
    • getAllUserGroupsForUserGroup

      <T extends UserGroupModel> Set<T> getAllUserGroupsForUserGroup(UserGroupModel userGroup, Class<T> clazz)
      Gets all user groups for the given user group and specified (result) class. If the user is in a user group which is not assignable from the given clazz then this group is not in the result set. Use getUserGroupForUID(String) if all groups are needed.

      The Set of user groups is collected recursively.

      Parameters:
      userGroup - the given user group
      clazz - the user group must match the given class. Can be a UserGroupModel or any subtype of it.
      Returns:
      Set of user groups which must be instances of the specified result class
      Throws:
      IllegalArgumentException - if given user group or given clazz are null
    • isMemberOfGroup

      boolean isMemberOfGroup(UserModel member, UserGroupModel groupToCheckFor)
      Checks if the given user is a member of the specified groupToCheckFor or its super groups.

      The super groups are collected recursively.

      Parameters:
      member - the user to check
      groupToCheckFor - the group(s) to be checked for
      Returns:
      true if the user is a member of this group, otherwise false
      Throws:
      IllegalArgumentException - if the given user or the given groupToCheckFor are null
    • isMemberOfGroup

      boolean isMemberOfGroup(UserModel member, UserGroupModel groupToCheckFor, boolean includeSuperGroups)
      Checks if the given user is a member of the specified groupToCheckFor or its super groups if includeSubGroups is set to true.

      The super groups are collected recursively.

      Parameters:
      member - the user to check
      groupToCheckFor - the group(s) to be checked for
      includeSuperGroups - should include super groups in search
      Returns:
      true if the user is a member of this group, otherwise false
      Throws:
      IllegalArgumentException - if the given user or the given groupToCheckFor are null
    • isMemberOfGroup

      boolean isMemberOfGroup(UserGroupModel member, UserGroupModel groupToCheckFor)
      Checks if the given user group is a member of the specified groupToCheckFor or its super groups.

      The super groups are collected recursively.

      Parameters:
      member - the user group to check
      groupToCheckFor - the group(s) to be checked for
      Returns:
      true if the user group is a member of this group, otherwise false
      Throws:
      IllegalArgumentException - if the given user group or the given groupToCheckFor are null
    • isMemberOfGroup

      boolean isMemberOfGroup(UserGroupModel member, UserGroupModel groupToCheckFor, boolean includeSuperGroups)
      Checks if the given user group is a member of the specified groupToCheckFor or its super groups if includeSubGroups is set to true.

      The super groups are collected recursively.

      Parameters:
      member - the user group to check
      groupToCheckFor - the group(s) to be checked for
      includeSuperGroups - should include super groups in search
      Returns:
      true if the user group is a member of this group, otherwise false
      Throws:
      IllegalArgumentException - if the given user group or the given groupToCheckFor are null
    • getAllTitles

      Collection<TitleModel> getAllTitles()
      Returns all TitleModels in the system.
      Returns:
      an empty collection if no TitleModel was found.
    • getTitleForCode

      TitleModel getTitleForCode(String code)
      Returns the TitleModel for the specified code.
      Parameters:
      code - the unique code of the title
      Throws:
      UnknownIdentifierException - if a title was not found
      IllegalArgumentException - if given code was null
      AmbiguousIdentifierException - if for the given code too many title were found
    • getAdminUser

      EmployeeModel getAdminUser()
      Returns always the admin user. Search restrictions are disabled for this call.
      Returns:
      the system admin user as EmployeeModel
    • getAdminUserGroup

      UserGroupModel getAdminUserGroup()
      Returns always the admin user group. Search restrictions are disabled for this call.
      Returns:
      the admin user group as UserGroupModel
    • isAdmin

      boolean isAdmin(UserModel user)
      Checks if the given user has the admin role.

      The user is an admin if either the user is the admin employee or the user is a member of the admin user group (see getAdminUserGroup()).

      Parameters:
      user - user to check
      Returns:
      true if the user is an admin, otherwise false
      Throws:
      IllegalArgumentException - if the given is null
    • isAdminGroup

      boolean isAdminGroup(UserGroupModel userGroup)
      Checks if the given user group or it's super groups have the admin role.

      Parameters:
      userGroup - user to check
      Returns:
      true if the user is an admin, otherwise false
      Throws:
      IllegalArgumentException - if the given is null
    • isAdminEmployee

      boolean isAdminEmployee(UserModel user)
      Checks if the given user has the is the admin employee.

      see getAdminUser()).

      Parameters:
      user - user to check
      Returns:
      true if the user is an admin employee, otherwise false
      Throws:
      IllegalArgumentException - if the given is null
    • getAnonymousUser

      CustomerModel getAnonymousUser()
      Returns always the anonymous user. Search restrictions are disabled for this call.
      Returns:
      the anonymous user as CustomerModel
    • isAnonymousUser

      boolean isAnonymousUser(UserModel user)
      Checks if the given user is the anonymous customer.
      Parameters:
      user - the user to check
      Returns:
      true if the user is the anonymous customer, otherwise false
    • getCurrentUser

      UserModel getCurrentUser()
      Returns the current user from the Session.
      Returns:
      the current UserModel
    • setCurrentUser

      void setCurrentUser(UserModel user)
      Sets the given user as current user on the Session.

      After changing the user current user a AfterSessionUserChangeEvent is fired.

      Please note: With hybris 4.3 this method doesn't trigger a call of JaloSessionListener.afterSessionUserChange(de.hybris.platform.jalo.JaloSession, de.hybris.platform.jalo.user.User) in the jalo-layer!

      Parameters:
      user - the user to set as current
    • getPassword

      If possible returns the decoded password from the given user. Throws exception if decoding is not possible.
      Parameters:
      userId - the user ID from the user
      Returns:
      password text in plain text
      Throws:
      CannotDecodePasswordException - if decode of the password is not possible (example: MD5)
      PasswordEncoderNotFoundException - if for the given password encoding (see UserModel.getPasswordEncoding() no password encoder was found
      IllegalArgumentException - if userID was null
      UnknownIdentifierException - us user was not found
    • setPassword

      void setPassword(String userId, String password) throws PasswordEncoderNotFoundException
      Encodes the given plain text password with the default password encoding and set the encoded password to the given user.
      Parameters:
      userId - the user ID of the user
      password - the plain text password
      Throws:
      PasswordEncoderNotFoundException - if for the given password encoding (see UserModel.getPasswordEncoding() no password encoder was found
      IllegalArgumentException - if userID was null
      UnknownIdentifierException - us user was not found
    • setPassword

      void setPassword(String userId, String password, String encoding) throws PasswordEncoderNotFoundException
      Sets the password according to the given encoding for the given user id.
      Parameters:
      userId - the user ID
      password - the plain password
      encoding - the encoding to encode the given password
      Throws:
      PasswordEncoderNotFoundException - is thrown if given encoding does not match any password encoder in the system
    • setPassword

      void setPassword(UserModel user, String plainPassword, String encoding) throws PasswordEncoderNotFoundException
      Encodes the given plain text password with the given password encoding and set the encoded password to the given user.
      Parameters:
      user - the encoded password is set to UserModel.setEncodedPassword(String)
      plainPassword - the plain text password for the user
      encoding - the password encidung, must exist
      Throws:
      PasswordEncoderNotFoundException - if for the given password encoding (see UserModel.getPasswordEncoding() no password encoder was found
    • setPassword

      void setPassword(UserModel user, String plainPassword) throws PasswordEncoderNotFoundException
      Encodes the given plain text password with the user's password encoding (using the default encoding if the user doesn't have one) and set the encoded password to the given user.
      Parameters:
      user - the encoded password is set to UserModel.setEncodedPassword(String)
      plainPassword - the plain text password for the user
      Throws:
      PasswordEncoderNotFoundException - if for the given password encoding (see UserModel.getPasswordEncoding() no password encoder was found
    • setPasswordWithDefaultEncoding

      void setPasswordWithDefaultEncoding(UserModel user, String plainPassword) throws PasswordEncoderNotFoundException
      Encodes the given plain text password with the default password encoding and set the encoded password to the given user.
      Parameters:
      user - the encoded password is set to UserModel.setEncodedPassword(String)
      plainPassword - the plain text password for the user
      Throws:
      PasswordEncoderNotFoundException
    • getPassword

      Returns for the given user the decoded password if this is possible.
      Parameters:
      user - the user where the password should be decoded
      Returns:
      the decoded password if possible
      Throws:
      CannotDecodePasswordException - if the encoded password UserModel.getEncodedPassword() cannot be decoded.
      PasswordEncoderNotFoundException - is thrown if given encoding does not match any password encoder in the system
    • setEncodedPassword

      void setEncodedPassword(UserModel user, String encodedPassword)
      Sets the encoded password to the given user.

      The encoding is taken form user or if null the system default encoding is used.

      Parameters:
      user - the encoded password is set to UserModel.setEncodedPassword(String)
      encodedPassword - encoded password for the user
    • setEncodedPassword

      void setEncodedPassword(UserModel user, String encodedPassword, String encoding)
      Sets the encoded password to the given user.
      Parameters:
      user - the encoded password is set to UserModel.setEncodedPassword(String)
      encodedPassword - encoded password for the user
      encoding - the password encoding