Interface UserService
-
- All Known Implementing Classes:
DefaultUserService,SecureUserService
public interface UserServiceInterface for the user service.- Since:
- 4.0
- Spring Bean ID:
- userService
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description EmployeeModelgetAdminUser()Returns always the admin user.UserGroupModelgetAdminUserGroup()Returns always the admin user group.java.util.Collection<TitleModel>getAllTitles()Returns allTitleModels in the system.java.util.Set<UserGroupModel>getAllUserGroupsForUser(UserModel user)Gets all user groups for the given user.<T extends UserGroupModel>
java.util.Set<T>getAllUserGroupsForUser(UserModel user, java.lang.Class<T> clazz)Gets all user groups for the given user and specified (result) class.<T extends UserGroupModel>
java.util.Set<T>getAllUserGroupsForUserGroup(UserGroupModel userGroup, java.lang.Class<T> clazz)Gets all user groups for the given user group and specified (result) class.CustomerModelgetAnonymousUser()Returns always the anonymous user.UserModelgetCurrentUser()Returns the current user from theSession.java.lang.StringgetPassword(UserModel user)Returns for the given user the decoded password if this is possible.java.lang.StringgetPassword(java.lang.String userId)If possible returns the decoded password from the given user.TitleModelgetTitleForCode(java.lang.String code)Returns theTitleModelfor the specifiedcode.UserModelgetUser(java.lang.String userId)Deprecated.since 6.1.0 - wrong naming, please usegetUserForUID(String)java.util.List<AbstractUserAuditModel>getUserAudits(UserModel user)Gets audit information about user previous password hashes.UserModelgetUserForUID(java.lang.String userId)Returns theUserModelfor the specifieduserId<T extends UserModel>
TgetUserForUID(java.lang.String userId, java.lang.Class<T> clazz)Returns for the specifieduserIdand the specified (result) class the found user in the specified class.UserGroupModelgetUserGroup(java.lang.String userGroupId)Deprecated.since 6.1.0 - wrong naming, please usegetUserGroupForUID(String)UserGroupModelgetUserGroupForUID(java.lang.String uid)Returns theUserGroupModelfor the specifieduid.<T extends UserGroupModel>
TgetUserGroupForUID(java.lang.String uid, java.lang.Class<T> clazz)Returns theUserGroupModelfor the specifieduidand the specified (result) class.booleanisAdmin(UserModel user)Checks if the given user has the admin role.booleanisAdminEmployee(UserModel user)Checks if the given user has the is the admin employee.booleanisAdminGroup(UserGroupModel userGroup)Checks if the given user group or it's super groups have the admin role.booleanisAnonymousUser(UserModel user)Checks if the given user is the anonymous customer.booleanisMemberOfGroup(UserGroupModel member, UserGroupModel groupToCheckFor)Checks if the givenuser group is a memberof the specifiedgroupToCheckForor its super groups.booleanisMemberOfGroup(UserGroupModel member, UserGroupModel groupToCheckFor, boolean includeSuperGroups)Checks if the givenuser group is a memberof the specifiedgroupToCheckForor its super groups ifincludeSubGroupsis set totrue.booleanisMemberOfGroup(UserModel member, UserGroupModel groupToCheckFor)Checks if the givenuser is a memberof the specifiedgroupToCheckForor its super groups.booleanisMemberOfGroup(UserModel member, UserGroupModel groupToCheckFor, boolean includeSuperGroups)Checks if the givenuser is a memberof the specifiedgroupToCheckForor its super groups ifincludeSubGroupsis set totrue.booleanisPasswordIdenticalToAudited(UserModel user, java.lang.String plainPassword, UserPasswordChangeAuditModel audit)Checks if password is the same as the previous password.booleanisUserExisting(java.lang.String uid)Checks if for the specifieduida user exists in the system.voidsetCurrentUser(UserModel user)Sets the given user as current user on theSession.voidsetEncodedPassword(UserModel user, java.lang.String encodedPassword)Sets the encoded password to the given user.voidsetEncodedPassword(UserModel user, java.lang.String encodedPassword, java.lang.String encoding)Sets the encoded password to the given user.voidsetPassword(UserModel user, java.lang.String plainPassword)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.voidsetPassword(UserModel user, java.lang.String plainPassword, java.lang.String encoding)Encodes the given plain text password with the given password encoding and set the encoded password to the given user.voidsetPassword(java.lang.String userId, java.lang.String password)Encodes the given plain text password with the default password encoding and set the encoded password to the given user.voidsetPassword(java.lang.String userId, java.lang.String password, java.lang.String encoding)Sets the password according to the givenencodingfor the given user id.voidsetPasswordWithDefaultEncoding(UserModel user, java.lang.String plainPassword)Encodes the given plain text password with the default password encoding and set the encoded password to the given user.
-
-
-
Method Detail
-
getUser
@Deprecated UserModel getUser(java.lang.String userId)
Deprecated.since 6.1.0 - wrong naming, please usegetUserForUID(String)Returns theUserModelby the specifieduserId- Parameters:
userId- the specified userId- Returns:
- the
UserModel - Throws:
UnknownIdentifierException- if the user was not found
-
getUserForUID
UserModel getUserForUID(java.lang.String userId)
Returns theUserModelfor the specifieduserId- Parameters:
userId- the unique userId of the user- Returns:
- the
UserModelor a subtype of it. - Throws:
UnknownIdentifierException- if user was not foundjava.lang.IllegalArgumentException- if givenuserIdwasnull
-
getUserForUID
<T extends UserModel> T getUserForUID(java.lang.String userId, java.lang.Class<T> clazz)
Returns for the specifieduserIdand 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 aUserModelor any subtype of it.- Throws:
UnknownIdentifierException- if the user was not foundjava.lang.IllegalArgumentException- if givenuserIdor givenclazzwasnullClassMismatchException- if a user was found by the givenuserIdbut did not match the providedclazz
-
isUserExisting
boolean isUserExisting(java.lang.String uid)
Checks if for the specifieduida user exists in the system.- Parameters:
uid- of the user- Returns:
trueif a user exists, otherwisefalse
-
getUserGroup
@Deprecated UserGroupModel getUserGroup(java.lang.String userGroupId)
Deprecated.since 6.1.0 - wrong naming, please usegetUserGroupForUID(String)Returns theUserGroupModelby the specified userGroupId- Parameters:
userGroupId- the specified userGroupId- Returns:
- the
UserGroupModel - Throws:
UnknownIdentifierException- if the userGroup was not found
-
getUserGroupForUID
UserGroupModel getUserGroupForUID(java.lang.String uid)
Returns theUserGroupModelfor the specifieduid.- Parameters:
uid- the uniqueuidof the group- Returns:
- the found
UserGroupModel(or a subtype of it). - Throws:
UnknownIdentifierException- if user group was not foundjava.lang.IllegalArgumentException- if givenuidwasnull
-
getUserGroupForUID
<T extends UserGroupModel> T getUserGroupForUID(java.lang.String uid, java.lang.Class<T> clazz)
Returns theUserGroupModelfor the specifieduidand the specified (result) class.The found user group must be an instance of the given class, otherwise an exception is thrown.
- Parameters:
uid- The uniqueuidof the user group to be searched for.clazz- The user group must match the given class. Can be aUserGroupModelor any subtype of it.- Returns:
- the found
UserGroupModel - Throws:
UnknownIdentifierException- if user group was not foundClassMismatchException- if a user group was found by the givenuidbut did not match the providedclazzjava.lang.IllegalArgumentException- if givenuidor givenclazzwasnull
-
getAllUserGroupsForUser
java.util.Set<UserGroupModel> getAllUserGroupsForUser(UserModel user)
Gets all user groups for the given user.The
Setof user groups is collected recursively.- Parameters:
user- the given user- Returns:
Setofuser groups- Throws:
java.lang.IllegalArgumentException- if givenuserisnull
-
getAllUserGroupsForUser
<T extends UserGroupModel> java.util.Set<T> getAllUserGroupsForUser(UserModel user, java.lang.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 givenclazzthen this group is not in the result set. UsegetUserGroupForUID(String)if all groups are needed.The
Setof user groups is collected recursively.- Parameters:
user- the given userclazz- the user group must match the given class. Can be aUserGroupModelor any subtype of it.- Returns:
Setof user groups which must be instances of the specified result class- Throws:
java.lang.IllegalArgumentException- if givenuseror givenclazzarenull
-
getUserAudits
java.util.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, java.lang.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:
trueif password is the same as audit, otherwisefalse
-
getAllUserGroupsForUserGroup
<T extends UserGroupModel> java.util.Set<T> getAllUserGroupsForUserGroup(UserGroupModel userGroup, java.lang.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 givenclazzthen this group is not in the result set. UsegetUserGroupForUID(String)if all groups are needed.The
Setof user groups is collected recursively.- Parameters:
userGroup- the given user groupclazz- the user group must match the given class. Can be aUserGroupModelor any subtype of it.- Returns:
Setof user groups which must be instances of the specified result class- Throws:
java.lang.IllegalArgumentException- if givenuser groupor givenclazzarenull
-
isMemberOfGroup
boolean isMemberOfGroup(UserModel member, UserGroupModel groupToCheckFor)
Checks if the givenuser is a memberof the specifiedgroupToCheckForor its super groups.The super groups are collected recursively.
- Parameters:
member- the user to checkgroupToCheckFor- the group(s) to be checked for- Returns:
trueif the user is a member of this group, otherwisefalse- Throws:
java.lang.IllegalArgumentException- if the given user or the given groupToCheckFor arenull
-
isMemberOfGroup
boolean isMemberOfGroup(UserModel member, UserGroupModel groupToCheckFor, boolean includeSuperGroups)
Checks if the givenuser is a memberof the specifiedgroupToCheckForor its super groups ifincludeSubGroupsis set totrue.The super groups are collected recursively.
- Parameters:
member- the user to checkgroupToCheckFor- the group(s) to be checked forincludeSuperGroups- should include super groups in search- Returns:
trueif the user is a member of this group, otherwisefalse- Throws:
java.lang.IllegalArgumentException- if the given user or the given groupToCheckFor arenull
-
isMemberOfGroup
boolean isMemberOfGroup(UserGroupModel member, UserGroupModel groupToCheckFor)
Checks if the givenuser group is a memberof the specifiedgroupToCheckForor its super groups.The super groups are collected recursively.
- Parameters:
member- the user group to checkgroupToCheckFor- the group(s) to be checked for- Returns:
trueif the user group is a member of this group, otherwisefalse- Throws:
java.lang.IllegalArgumentException- if the given user group or the given groupToCheckFor arenull
-
isMemberOfGroup
boolean isMemberOfGroup(UserGroupModel member, UserGroupModel groupToCheckFor, boolean includeSuperGroups)
Checks if the givenuser group is a memberof the specifiedgroupToCheckForor its super groups ifincludeSubGroupsis set totrue.The super groups are collected recursively.
- Parameters:
member- the user group to checkgroupToCheckFor- the group(s) to be checked forincludeSuperGroups- should include super groups in search- Returns:
trueif the user group is a member of this group, otherwisefalse- Throws:
java.lang.IllegalArgumentException- if the given user group or the given groupToCheckFor arenull
-
getAllTitles
java.util.Collection<TitleModel> getAllTitles()
Returns allTitleModels in the system.- Returns:
- an empty collection if no
TitleModelwas found.
-
getTitleForCode
TitleModel getTitleForCode(java.lang.String code)
Returns theTitleModelfor the specifiedcode.- Parameters:
code- the uniquecodeof the title- Throws:
UnknownIdentifierException- if a title was not foundjava.lang.IllegalArgumentException- if givencodewasnullAmbiguousIdentifierException- if for the givencodetoo 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:
trueif the user is an admin, otherwisefalse- Throws:
java.lang.IllegalArgumentException- if the given isnull
-
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:
trueif the user is an admin, otherwisefalse- Throws:
java.lang.IllegalArgumentException- if the given isnull
-
isAdminEmployee
boolean isAdminEmployee(UserModel user)
Checks if the given user has the is the admin employee.see
getAdminUser()).- Parameters:
user- user to check- Returns:
trueif the user is an admin employee, otherwisefalse- Throws:
java.lang.IllegalArgumentException- if the given isnull
-
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:
trueif the user is the anonymous customer, otherwisefalse
-
getCurrentUser
UserModel getCurrentUser()
Returns the current user from theSession.- Returns:
- the current
UserModel
-
setCurrentUser
void setCurrentUser(UserModel user)
Sets the given user as current user on theSession.After changing the user current user a
AfterSessionUserChangeEventis 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
java.lang.String getPassword(java.lang.String userId) throws CannotDecodePasswordException, PasswordEncoderNotFoundExceptionIf 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 (seeUserModel.getPasswordEncoding()no password encoder was foundjava.lang.IllegalArgumentException- if userID wasnullUnknownIdentifierException- us user was not found
-
setPassword
void setPassword(java.lang.String userId, java.lang.String password) throws PasswordEncoderNotFoundExceptionEncodes 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 userpassword- the plain text password- Throws:
PasswordEncoderNotFoundException- if for the given password encoding (seeUserModel.getPasswordEncoding()no password encoder was foundjava.lang.IllegalArgumentException- if userID wasnullUnknownIdentifierException- us user was not found
-
setPassword
void setPassword(java.lang.String userId, java.lang.String password, java.lang.String encoding) throws PasswordEncoderNotFoundExceptionSets the password according to the givenencodingfor the given user id.- Parameters:
userId- the user IDpassword- the plain passwordencoding- 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, java.lang.String plainPassword, java.lang.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 toUserModel.setEncodedPassword(String)plainPassword- the plain text password for the userencoding- the password encidung, must exist- Throws:
PasswordEncoderNotFoundException- if for the given password encoding (seeUserModel.getPasswordEncoding()no password encoder was found
-
setPassword
void setPassword(UserModel user, java.lang.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 toUserModel.setEncodedPassword(String)plainPassword- the plain text password for the user- Throws:
PasswordEncoderNotFoundException- if for the given password encoding (seeUserModel.getPasswordEncoding()no password encoder was found
-
setPasswordWithDefaultEncoding
void setPasswordWithDefaultEncoding(UserModel user, java.lang.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 toUserModel.setEncodedPassword(String)plainPassword- the plain text password for the user- Throws:
PasswordEncoderNotFoundException
-
getPassword
java.lang.String getPassword(UserModel user) throws CannotDecodePasswordException, PasswordEncoderNotFoundException
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 passwordUserModel.getEncodedPassword()cannot be decoded.PasswordEncoderNotFoundException- is thrown if given encoding does not match any password encoder in the system
-
setEncodedPassword
void setEncodedPassword(UserModel user, java.lang.String encodedPassword)
Sets the encoded password to the given user.The encoding is taken form user or if
nullthe system default encoding is used.- Parameters:
user- the encoded password is set toUserModel.setEncodedPassword(String)encodedPassword- encoded password for the user
-
setEncodedPassword
void setEncodedPassword(UserModel user, java.lang.String encodedPassword, java.lang.String encoding)
Sets the encoded password to the given user.- Parameters:
user- the encoded password is set toUserModel.setEncodedPassword(String)encodedPassword- encoded password for the userencoding- the password encoding
-
-