Package de.xima.fc.handler.entity
Class UserProfileHandler
- java.lang.Object
-
- de.xima.fc.handler.AMSApiHandler
-
- de.xima.fc.handler.entity.GenericHandler
-
- de.xima.fc.handler.entity.UserProfileHandler
-
- All Implemented Interfaces:
IAPIHandler,IGenericHandler,IUserProfileHandler,Serializable
public class UserProfileHandler extends GenericHandler implements IUserProfileHandler
Handler implementation for reading and writingUserProfileentities.- Since:
- 8.0.0
- Author:
- XIMA Media GmbH
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class de.xima.fc.handler.entity.GenericHandler
LOG
-
-
Constructor Summary
Constructors Constructor Description UserProfileHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description UserProfileacceptDirectClientAuthorization(UserContext uc, UserProfile profile, DirectClientAuthorization authorization)Adds the given client authorization to the given profile and accepts it.UserProfileaddDirectClientAuthorization(UserContext uc, UserProfile userProfile, DirectClientAuthorization authorization)Adds the given client authorizations to the user profile.booleancanBeDeleted(UserContext uc, UserProfile profile)Checks whether or not the user profile can be deleted.@NotBlank StringfindUniqueUserName(UserContext uc, String candidate, UserProfile exclude)Finds a unique user name for the given candidate.UserProfilegetById(UserContext uc, Long id)Reads the entity with the given ID.UserProfilegetByLoginId(UserContext uc, String loginId)Finds the user profile by the given login ID.UserProfilegetByUserName(UserContext uc, String userName)Finds the user profile with the given user nameUserProfilegetByUserProfile(UserContext uc, org.pac4j.core.profile.UserProfile pac4jProfile)Finds the formcycle user profile for the given pac4j profile.UserProfilegetByUuid(UserContext uc, String uuid)Finds the user profile with the given UUID.UserProfilegetByUuid(UserContext uc, UUID uuid)Finds the user credentials with the given UUID.UserProfilegetByVerifiedCallback(UserContext uc, String identifier, String callbackUuid)Finds the user profile by the given callback information.UserProfilegetByVerifiedEmailAddress(UserContext uc, String email)Finds the user profile with the given verified email address.UserProfilegetByVerifiedPrimaryEmailAddress(UserContext uc, String email)Finds the user profile with the given verified primary email address.IUserRefExtensiongetUserRefExtension(UserContext uc, IUser user)Returns the user filter extension for the given user profile.<T extends IUserData & IUserRef>
IUserRefExtensiongetUserRefExtension(UserContext uc, T userRef, UUID clientUUID)Returns the user filter extension for the given user profile.booleanisUserNameExisiting(UserContext uc, String name)Checks if the given user name exists within the system.@NotNull UserProfilemergeUserProfiles(UserContext uc, UserProfile main, UserProfile toBeMerged)Merges the a profile into another.UserProfileupdate(UserContext uc, UserProfile entity)Updates the given user profile and returns the updated entity.org.pac4j.core.profile.UserProfilevalidateSuperUserLogin(UserContext uc, String loginId, String password)Validates the given user credentials and returns the user profile of the super user if successfully.org.pac4j.core.profile.UserProfilevalidateUserLogin(UserContext uc, String loginId, String password)Validates the given user credentials and returns the user profile if successfully.-
Methods inherited from class de.xima.fc.handler.entity.GenericHandler
create, create, delete, delete, deleteBy, deleteById, deleteById, getAll, getAllBy, getAttributes, getAttributes, getBy, getById, getById, getById, getEntityRefs, getSingleAttributes, getSingleAttributes, resultTotalCount, serializableList, update, update
-
Methods inherited from class de.xima.fc.handler.AMSApiHandler
getName
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.xima.fc.com.interfaces.IAPIHandler
getName
-
Methods inherited from interface de.xima.fc.handler.interfaces.entity.IGenericHandler
create, create, delete, delete, deleteBy, deleteById, deleteById, getAll, getAllBy, getAttributes, getAttributes, getBy, getById, getById, getById, getEntityRefs, getSingleAttributes, getSingleAttributes, resultTotalCount, update, update
-
-
-
-
Method Detail
-
getById
public UserProfile getById(UserContext uc, Long id)
Description copied from interface:IUserProfileHandlerReads the entity with the given ID. Hibernate proxy fields may be initialized if requested.- Specified by:
getByIdin interfaceIUserProfileHandler- Parameters:
uc- user context for accessing the databaseid- of the entity- Returns:
- the entity with the given ID with possibly initialized hibernate fields.
-
update
public UserProfile update(UserContext uc, UserProfile entity)
Description copied from interface:IUserProfileHandlerUpdates the given user profile and returns the updated entity. Hibernate proxy fields may be initialized if requested.- Specified by:
updatein interfaceIUserProfileHandler- Parameters:
uc- user context for accessing the databaseentity- to update- Returns:
- the updated entity with possibly initialized hibernate fields.
-
getByLoginId
public UserProfile getByLoginId(UserContext uc, String loginId)
Description copied from interface:IUserProfileHandlerFinds the user profile by the given login ID. This ID may be the users primary email address or user name.- Specified by:
getByLoginIdin interfaceIUserProfileHandler- Parameters:
uc- user context for accessing the databaseloginId- primary email address (case irrelevant) or user name of the user profile.- Returns:
- The user profile for the given login ID or
null.
-
getByVerifiedEmailAddress
public UserProfile getByVerifiedEmailAddress(UserContext uc, String email)
Description copied from interface:IUserProfileHandlerFinds the user profile with the given verified email address.- Specified by:
getByVerifiedEmailAddressin interfaceIUserProfileHandler- Parameters:
uc- User context for database transactions.email- of the user profile (case irrelevant).- Returns:
- The user profile with the given verified email or
null.
-
getByVerifiedPrimaryEmailAddress
public UserProfile getByVerifiedPrimaryEmailAddress(UserContext uc, String email)
Description copied from interface:IUserProfileHandlerFinds the user profile with the given verified primary email address.- Specified by:
getByVerifiedPrimaryEmailAddressin interfaceIUserProfileHandler- Parameters:
uc- User context for database transactions.email- of the user profile (case irrelevant).- Returns:
- The user profile with the given verified primary email or
null.
-
getByUserName
public UserProfile getByUserName(UserContext uc, String userName)
Description copied from interface:IUserProfileHandlerFinds the user profile with the given user name- Specified by:
getByUserNamein interfaceIUserProfileHandler- Parameters:
uc- Current user context for database transactions.userName- of the user profile- Returns:
- The user profile with the given user name or
null.
-
getByVerifiedCallback
public UserProfile getByVerifiedCallback(UserContext uc, String identifier, String callbackUuid)
Description copied from interface:IUserProfileHandlerFinds the user profile by the given callback information. The callback information includes the client name which identifies theSystemAuthenticatoror the authenticator type and the user identity identifier.- Specified by:
getByVerifiedCallbackin interfaceIUserProfileHandler- Parameters:
uc- User context for database transactions.identifier- Identifier of the user identity.callbackUuid- Identifies theSystemAuthenticatoror the authenticator type.- Returns:
- The user profile matching the callback information.
-
getByUuid
public UserProfile getByUuid(UserContext uc, String uuid)
Description copied from interface:IUserProfileHandlerFinds the user profile with the given UUID.- Specified by:
getByUuidin interfaceIUserProfileHandler- Parameters:
uc- User context for database transactions.uuid- UUID of the user profile.- Returns:
- The user profile with the given UUID.
-
getByUuid
public UserProfile getByUuid(UserContext uc, UUID uuid)
Description copied from interface:IUserProfileHandlerFinds the user credentials with the given UUID.- Specified by:
getByUuidin interfaceIUserProfileHandler- Parameters:
uc- User context for database transactions.uuid- of the user profile.- Returns:
- The user profile with the given UUID.
-
getByUserProfile
public UserProfile getByUserProfile(UserContext uc, org.pac4j.core.profile.UserProfile pac4jProfile)
Description copied from interface:IUserProfileHandlerFinds the formcycle user profile for the given pac4j profile.- Specified by:
getByUserProfilein interfaceIUserProfileHandler- Parameters:
uc- User context for database transactions.pac4jProfile- pac4j user profile to find the formcycle user profile for.- Returns:
- The user profile for the Pac4J profile, if any.
-
findUniqueUserName
@NotBlank public @NotBlank String findUniqueUserName(UserContext uc, String candidate, UserProfile exclude)
Description copied from interface:IUserProfileHandlerFinds a unique user name for the given candidate. If the candidate is not unique a random number will be appended.- Specified by:
findUniqueUserNamein interfaceIUserProfileHandler- Parameters:
uc- user context for database transactions.candidate- desired user name.exclude- user profile to be excluded from search.- Returns:
- a unique user name.
-
isUserNameExisiting
public boolean isUserNameExisiting(UserContext uc, String name)
Description copied from interface:IUserProfileHandlerChecks if the given user name exists within the system.- Specified by:
isUserNameExisitingin interfaceIUserProfileHandler- Parameters:
uc- user context for database transactions.name- user name to check.- Returns:
trueif the user name exists already andfalseotherwise.
-
validateUserLogin
public org.pac4j.core.profile.UserProfile validateUserLogin(UserContext uc, String loginId, String password)
Description copied from interface:IUserProfileHandlerValidates the given user credentials and returns the user profile if successfully. If enabled, the super user will also be taken into account- Specified by:
validateUserLoginin interfaceIUserProfileHandler- Parameters:
uc- User context for database transactions.loginId- user name or primary email address of the user.password- password for the user profile.- Returns:
- user profile if validation was successful.
nullotherwise.
-
validateSuperUserLogin
public org.pac4j.core.profile.UserProfile validateSuperUserLogin(UserContext uc, String loginId, String password)
Description copied from interface:IUserProfileHandlerValidates the given user credentials and returns the user profile of the super user if successfully.- Specified by:
validateSuperUserLoginin interfaceIUserProfileHandler- Parameters:
uc- User context for database transactions.loginId- user name or primary email address of the user.password- password for the user profile.- Returns:
- user profile if validation was successful.
nullotherwise.
-
getUserRefExtension
public <T extends IUserData & IUserRef> IUserRefExtension getUserRefExtension(UserContext uc, T userRef, UUID clientUUID)
Description copied from interface:IUserProfileHandlerReturns the user filter extension for the given user profile.- Specified by:
getUserRefExtensionin interfaceIUserProfileHandler- Parameters:
uc- User context for database transactions.userRef- to get the filter extension for.clientUUID- UUID of the client.- Returns:
- The user filter extension for the given user profile.
-
getUserRefExtension
public IUserRefExtension getUserRefExtension(UserContext uc, IUser user)
Description copied from interface:IUserProfileHandlerReturns the user filter extension for the given user profile.- Specified by:
getUserRefExtensionin interfaceIUserProfileHandler- Parameters:
uc- User context for database transactions.user- to get the filter extension for.- Returns:
- The user filter extension for the given user profile.
-
addDirectClientAuthorization
public UserProfile addDirectClientAuthorization(UserContext uc, UserProfile userProfile, DirectClientAuthorization authorization)
Description copied from interface:IUserProfileHandlerAdds the given client authorizations to the user profile. If the user profile already has an authorization to client than the authorizations will be merged, meaning that allrolesanduser groupswill be added to the existing client authorization of the user profile.- Specified by:
addDirectClientAuthorizationin interfaceIUserProfileHandler- Parameters:
uc- User context for database transactions.userProfile- to add the direct client authorization to.authorization- to add.- Returns:
- the updated user profile or
nullif an error occurred and the client authorization could not be added.
-
mergeUserProfiles
@NotNull public @NotNull UserProfile mergeUserProfiles(UserContext uc, UserProfile main, UserProfile toBeMerged)
Description copied from interface:IUserProfileHandlerMerges the a profile into another. Emails, identities, authorizations, permissions, roles, credentials, files will be added / merged. The custom user properties won't be affected. The profile that will be merged into the other profile will be deleted when the merge has completed.- Specified by:
mergeUserProfilesin interfaceIUserProfileHandler- Parameters:
uc- User context for database transactions.main- to be extended by merging another profile into it.toBeMerged- profile that will be merged into the main profile. This profile will be deleted when the merge has completed.- Returns:
- the extended user profile.
-
acceptDirectClientAuthorization
public UserProfile acceptDirectClientAuthorization(UserContext uc, UserProfile profile, DirectClientAuthorization authorization)
Description copied from interface:IUserProfileHandlerAdds the given client authorization to the given profile and accepts it. If an authorization for the client already exists than the authorizations will be merged.- Specified by:
acceptDirectClientAuthorizationin interfaceIUserProfileHandler- Parameters:
uc- User context for database transactionsprofile- User profile to add the client authorization to.authorization- Client authorization to add- Returns:
- The user profile with the added client authorization.
-
canBeDeleted
public boolean canBeDeleted(UserContext uc, UserProfile profile)
Description copied from interface:IUserProfileHandlerChecks whether or not the user profile can be deleted. User profiles can't be deleted if they are the only admin of existing clients. If the user profile can't be deleted the given user context will contain a set of clients for which the user profile is the only client admin.- Specified by:
canBeDeletedin interfaceIUserProfileHandler- Parameters:
uc- User context for database transactions.profile- to check.- Returns:
trueid the user profile can be deleted (is not the single admin of any existing clients) andfalseotherwise.
-
-