Package de.xima.fc.dao.interfaces
Interface IUserProfileDao
-
- All Superinterfaces:
de.xima.cmn.dao.interfaces.IAbstractDao<UserProfile,Long,IEntityContext>
,IGenericDao<UserProfile>
- All Known Implementing Classes:
UserProfileDao
public interface IUserProfileDao extends IGenericDao<UserProfile>
DAO for reading and writingUserProfile
entities.- Since:
- 8.0.0
- Author:
- XIMA Media GmbH
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description @NotNull UserProfile
acceptDirectClientAuthorization(IEntityContext ec, UserProfile profile, DirectClientAuthorization authorization)
Adds the given client authorization to the given profile and accepts it.@NotNull UserProfile
addDirectClientAuthorization(IEntityContext ec, UserProfile userProfile, DirectClientAuthorization authorization)
Adds the given client authorizations to the user profile.boolean
canBeDeleted(IEntityContext ec, UserProfile profile)
Checks whether or not the user profile can be deleted.@NotBlank String
findUniqueUserName(IEntityContext ec, String candidate, UserProfile exclude)
Finds a unique user name for the given candidate.Set<UserProfile>
getByEmailAddress(IEntityContext ec, String email)
Finds the user profiles with the given email address.UserProfile
getByLoginId(IEntityContext ec, String loginId)
Finds the user profile by the given login ID.UserProfile
getByUserName(IEntityContext ec, String userName)
Finds the user profile with the given user nameUserProfile
getByUuid(IEntityContext ec, String uuid)
Finds the user profile with the given UUID.UserProfile
getByUuid(IEntityContext ec, UUID uuid)
Finds the user credentials with the given UUID.UserProfile
getByVerifiedEmailAddress(IEntityContext ec, String email)
Finds the user profile with the given email address.UserProfile
getByVerifiedPrimaryEmailAddress(IEntityContext ec, String email)
Finds the user profile with the given verified primary email address.boolean
isUserNameExisiting(IEntityContext ec, String name)
Checks if the given user name exists within the system.@NotNull UserProfile
mergeUserProfiles(IEntityContext ec, UserProfile main, UserProfile toBeMerged)
Merges the a profile into another.UserProfile
validateUserLogin(IEntityContext ec, String loginId, String password)
Validates the given user credentials and returns the user profile if successfull.-
Methods inherited from interface de.xima.cmn.dao.interfaces.IAbstractDao
all, bulkDelete, bulkUpdate, checkLockingVersion, create, create, delete, delete, deleteAll, executePagedDaoAction, getAttributes, getAttributes, getSingleAttributes, getSingleAttributes, getTransactionHandler, read, registerListener, registerListener, registerListener, resultTotalCount, setTransactionHandler, singleElement, unregisterListener, unregisterListener, unregisterListener, update, update
-
Methods inherited from interface de.xima.fc.dao.interfaces.IGenericDao
count, findAll, findSingle, getEntityRefs, read
-
-
-
-
Method Detail
-
getByLoginId
@Nullable UserProfile getByLoginId(IEntityContext ec, String loginId)
Finds the user profile by the given login ID. This ID may be the users primary email address or user name.- Parameters:
ec
- entity 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
.
-
getByEmailAddress
Set<UserProfile> getByEmailAddress(IEntityContext ec, String email)
Finds the user profiles with the given email address. There may be multiple user profiles with the given email address but there can only be one user profile with a given verified email address (seegetByVerifiedEmailAddress(IEntityContext, String)
).- Parameters:
ec
- entity context for accessing the databaseemail
- address of the user profile (case irrelevant)- Returns:
- A set of user profiles with the given email address.
-
getByVerifiedEmailAddress
@Nullable UserProfile getByVerifiedEmailAddress(IEntityContext ec, String email)
Finds the user profile with the given email address. The user email needs to be verified.- Parameters:
ec
- entity context for accessing the databaseemail
- address of the user profile (case irrelevant)- Returns:
- The user profile with the given verified email address or
null
.
-
getByVerifiedPrimaryEmailAddress
@Nullable UserProfile getByVerifiedPrimaryEmailAddress(IEntityContext ec, String email)
Finds the user profile with the given verified primary email address.- Parameters:
ec
- entity context for accessing the databaseemail
- address of the user profile (case irrelevant)- Returns:
- The user profile with the given verified primary email address or
null
.
-
getByUserName
@Nullable UserProfile getByUserName(IEntityContext ec, String userName)
Finds the user profile with the given user name- Parameters:
ec
- entity context for accessing the databaseuserName
- of the user profile- Returns:
- The user profile with the given user name or
null
.
-
getByUuid
@Nullable UserProfile getByUuid(IEntityContext ec, String uuid)
Finds the user profile with the given UUID.- Parameters:
ec
- entity context for accessing the database.uuid
- UUID of the user profile.- Returns:
- The user profile with the given UUID.
-
getByUuid
@Nullable UserProfile getByUuid(IEntityContext ec, UUID uuid)
Finds the user credentials with the given UUID.- Parameters:
ec
- entity context for accessing the database.uuid
- of the user profile.- Returns:
- The user profile with the given UUID.
-
findUniqueUserName
@NotBlank @NotBlank String findUniqueUserName(IEntityContext ec, String candidate, UserProfile exclude)
Finds a unique user name for the given candidate. If the candidate is not unique a random number will be appended.- Parameters:
ec
- entity context for database transactions.candidate
- desired user name.exclude
- user profile to be excluded from search.- Returns:
- a unique user name.
-
isUserNameExisiting
boolean isUserNameExisiting(IEntityContext ec, String name)
Checks if the given user name exists within the system.- Parameters:
ec
- entity context for database transactions.name
- user name to check.- Returns:
true
if the user name exists already andfalse
otherwise.
-
validateUserLogin
@Nullable UserProfile validateUserLogin(IEntityContext ec, String loginId, String password)
Validates the given user credentials and returns the user profile if successfull.- Parameters:
ec
- entity context for accessing the database.loginId
- user name or primary email address of the userpassword
- password for the user profile- Returns:
- user profile if validation was successful.
null
otherwise.
-
addDirectClientAuthorization
@NotNull @NotNull UserProfile addDirectClientAuthorization(IEntityContext ec, UserProfile userProfile, DirectClientAuthorization authorization)
Adds 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 allroles
anduser groups
will be added to the existing client authorization of the user profile.- Parameters:
ec
- entity context for accessing the database.userProfile
- to add the direct client authorization to.authorization
- to add.- Returns:
- the updated user profile.
- Throws:
RuntimeException
- if the client authorization could not be accepted. All changes will be rolled back.
-
acceptDirectClientAuthorization
@NotNull @NotNull UserProfile acceptDirectClientAuthorization(IEntityContext ec, UserProfile profile, DirectClientAuthorization authorization)
Adds 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.- Parameters:
ec
- entity context for accessing the database.profile
- User profile to add the client authorization to.authorization
- Client authorization to add & accept- Returns:
- The user profile with the added / accepted client authorization.
-
mergeUserProfiles
@NotNull @NotNull UserProfile mergeUserProfiles(IEntityContext ec, UserProfile main, UserProfile toBeMerged)
Merges 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.- Parameters:
ec
- entity context for accessing the database.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.
-
canBeDeleted
boolean canBeDeleted(IEntityContext ec, UserProfile profile)
Checks 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 entity context will contain a set of clients for which the user profile is the only client admin.- Parameters:
ec
- entity context for accessing the database.profile
- to check.- Returns:
true
id the user profile can be deleted (is not the single admin of any existing clients) andfalse
otherwise.
-
-