Interface UserService
-
- All Known Implementing Classes:
DefaultUserService
,SecureUserService
public interface UserService
Interface 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 EmployeeModel
getAdminUser()
Returns always the admin user.UserGroupModel
getAdminUserGroup()
Returns always the admin user group.java.util.Collection<TitleModel>
getAllTitles()
Returns allTitleModel
s 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.CustomerModel
getAnonymousUser()
Returns always the anonymous user.UserModel
getCurrentUser()
Returns the current user from theSession
.java.lang.String
getPassword(UserModel user)
Returns for the given user the decoded password if this is possible.java.lang.String
getPassword(java.lang.String userId)
If possible returns the decoded password from the given user.TitleModel
getTitleForCode(java.lang.String code)
Returns theTitleModel
for the specifiedcode
.UserModel
getUser(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.UserModel
getUserForUID(java.lang.String userId)
Returns theUserModel
for the specifieduserId
<T extends UserModel>
TgetUserForUID(java.lang.String userId, java.lang.Class<T> clazz)
Returns for the specifieduserId
and the specified (result) class the found user in the specified class.UserGroupModel
getUserGroup(java.lang.String userGroupId)
Deprecated.since 6.1.0 - wrong naming, please usegetUserGroupForUID(String)
UserGroupModel
getUserGroupForUID(java.lang.String uid)
Returns theUserGroupModel
for the specifieduid
.<T extends UserGroupModel>
TgetUserGroupForUID(java.lang.String uid, java.lang.Class<T> clazz)
Returns theUserGroupModel
for the specifieduid
and the specified (result) class.boolean
isAdmin(UserModel user)
Checks if the given user has the admin role.boolean
isAdminEmployee(UserModel user)
Checks if the given user has the is the admin employee.boolean
isAdminGroup(UserGroupModel userGroup)
Checks if the given user group or it's super groups have the admin role.boolean
isAnonymousUser(UserModel user)
Checks if the given user is the anonymous customer.boolean
isMemberOfGroup(UserGroupModel member, UserGroupModel groupToCheckFor)
Checks if the givenuser group is a member
of the specifiedgroupToCheckFor
or its super groups.boolean
isMemberOfGroup(UserGroupModel member, UserGroupModel groupToCheckFor, boolean includeSuperGroups)
Checks if the givenuser group is a member
of the specifiedgroupToCheckFor
or its super groups ifincludeSubGroups
is set totrue
.boolean
isMemberOfGroup(UserModel member, UserGroupModel groupToCheckFor)
Checks if the givenuser is a member
of the specifiedgroupToCheckFor
or its super groups.boolean
isMemberOfGroup(UserModel member, UserGroupModel groupToCheckFor, boolean includeSuperGroups)
Checks if the givenuser is a member
of the specifiedgroupToCheckFor
or its super groups ifincludeSubGroups
is set totrue
.boolean
isPasswordIdenticalToAudited(UserModel user, java.lang.String plainPassword, UserPasswordChangeAuditModel audit)
Checks if password is the same as the previous password.boolean
isUserExisting(java.lang.String uid)
Checks if for the specifieduid
a user exists in the system.void
setCurrentUser(UserModel user)
Sets the given user as current user on theSession
.void
setEncodedPassword(UserModel user, java.lang.String encodedPassword)
Sets the encoded password to the given user.void
setEncodedPassword(UserModel user, java.lang.String encodedPassword, java.lang.String encoding)
Sets the encoded password to the given user.void
setPassword(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.void
setPassword(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.void
setPassword(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.void
setPassword(java.lang.String userId, java.lang.String password, java.lang.String encoding)
Sets the password according to the givenencoding
for the given user id.void
setPasswordWithDefaultEncoding(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 theUserModel
by 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 theUserModel
for the specifieduserId
- Parameters:
userId
- the unique userId of the user- Returns:
- the
UserModel
or a subtype of it. - Throws:
UnknownIdentifierException
- if user was not foundjava.lang.IllegalArgumentException
- if givenuserId
wasnull
-
getUserForUID
<T extends UserModel> T getUserForUID(java.lang.String userId, java.lang.Class<T> clazz)
Returns for the specifieduserId
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 aUserModel
or any subtype of it.- Throws:
UnknownIdentifierException
- if the user was not foundjava.lang.IllegalArgumentException
- if givenuserId
or givenclazz
wasnull
ClassMismatchException
- if a user was found by the givenuserId
but did not match the providedclazz
-
isUserExisting
boolean isUserExisting(java.lang.String uid)
Checks if for the specifieduid
a user exists in the system.- Parameters:
uid
- of the user- Returns:
true
if a user exists, otherwisefalse
-
getUserGroup
@Deprecated UserGroupModel getUserGroup(java.lang.String userGroupId)
Deprecated.since 6.1.0 - wrong naming, please usegetUserGroupForUID(String)
Returns theUserGroupModel
by 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 theUserGroupModel
for the specifieduid
.- Parameters:
uid
- the uniqueuid
of the group- Returns:
- the found
UserGroupModel
(or a subtype of it). - Throws:
UnknownIdentifierException
- if user group was not foundjava.lang.IllegalArgumentException
- if givenuid
wasnull
-
getUserGroupForUID
<T extends UserGroupModel> T getUserGroupForUID(java.lang.String uid, java.lang.Class<T> clazz)
Returns theUserGroupModel
for the specifieduid
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 uniqueuid
of the user group to be searched for.clazz
- The user group must match the given class. Can be aUserGroupModel
or any subtype of it.- Returns:
- the found
UserGroupModel
- Throws:
UnknownIdentifierException
- if user group was not foundClassMismatchException
- if a user group was found by the givenuid
but did not match the providedclazz
java.lang.IllegalArgumentException
- if givenuid
or givenclazz
wasnull
-
getAllUserGroupsForUser
java.util.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
ofuser groups
- Throws:
java.lang.IllegalArgumentException
- if givenuser
isnull
-
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 givenclazz
then this group is not in the result set. UsegetUserGroupForUID(String)
if all groups are needed.The
Set
of user groups is collected recursively.- Parameters:
user
- the given userclazz
- the user group must match the given class. Can be aUserGroupModel
or any subtype of it.- Returns:
Set
of user groups which must be instances of the specified result class- Throws:
java.lang.IllegalArgumentException
- if givenuser
or givenclazz
arenull
-
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:
true
if 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 givenclazz
then this group is not in the result set. UsegetUserGroupForUID(String)
if all groups are needed.The
Set
of user groups is collected recursively.- Parameters:
userGroup
- the given user groupclazz
- the user group must match the given class. Can be aUserGroupModel
or any subtype of it.- Returns:
Set
of user groups which must be instances of the specified result class- Throws:
java.lang.IllegalArgumentException
- if givenuser group
or givenclazz
arenull
-
isMemberOfGroup
boolean isMemberOfGroup(UserModel member, UserGroupModel groupToCheckFor)
Checks if the givenuser is a member
of the specifiedgroupToCheckFor
or its super groups.The super groups are collected recursively.
- Parameters:
member
- the user to checkgroupToCheckFor
- the group(s) to be checked for- Returns:
true
if 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 member
of the specifiedgroupToCheckFor
or its super groups ifincludeSubGroups
is 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:
true
if 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 member
of the specifiedgroupToCheckFor
or its super groups.The super groups are collected recursively.
- Parameters:
member
- the user group to checkgroupToCheckFor
- the group(s) to be checked for- Returns:
true
if 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 member
of the specifiedgroupToCheckFor
or its super groups ifincludeSubGroups
is 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:
true
if 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 allTitleModel
s in the system.- Returns:
- an empty collection if no
TitleModel
was found.
-
getTitleForCode
TitleModel getTitleForCode(java.lang.String code)
Returns theTitleModel
for the specifiedcode
.- Parameters:
code
- the uniquecode
of the title- Throws:
UnknownIdentifierException
- if a title was not foundjava.lang.IllegalArgumentException
- if givencode
wasnull
AmbiguousIdentifierException
- if for the givencode
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, 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:
true
if 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:
true
if 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:
true
if 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
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
java.lang.String getPassword(java.lang.String userId) throws CannotDecodePasswordException, PasswordEncoderNotFoundException
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 (seeUserModel.getPasswordEncoding()
no password encoder was foundjava.lang.IllegalArgumentException
- if userID wasnull
UnknownIdentifierException
- us user was not found
-
setPassword
void setPassword(java.lang.String userId, java.lang.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 userpassword
- the plain text password- Throws:
PasswordEncoderNotFoundException
- if for the given password encoding (seeUserModel.getPasswordEncoding()
no password encoder was foundjava.lang.IllegalArgumentException
- if userID wasnull
UnknownIdentifierException
- us user was not found
-
setPassword
void setPassword(java.lang.String userId, java.lang.String password, java.lang.String encoding) throws PasswordEncoderNotFoundException
Sets the password according to the givenencoding
for 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
null
the 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
-
-