Interface ProfileService
- All Known Implementing Classes:
ProfileServiceImpl
,ProfileServiceRestClient
public interface ProfileService
Service for handling profiles.
- Author:
- avasquez
-
Method Summary
Modifier and TypeMethodDescriptionaddProfileAttachment
(String profileId, String attachmentName, InputStream file) Saves a Profile AttachmentaddRoles
(String profileId, Collection<String> roles, String... attributesToReturn) Assigns roles to the profile.changePassword
(String resetTokenId, String newPassword, String... attributesToReturn) Changes a profile's password, after a reset request has been sent.createProfile
(String tenantName, String username, String password, String email, boolean enabled, Set<String> roles, Map<String, Object> attributes, String verificationUrl) Creates a new profile for a specific tenant name.createVerificationToken
(String profileId) Creates a token that can be sent to the user in an email as a link.void
deleteProfile
(String profileId) Deletes a profile.void
deleteVerificationToken
(String tokenId) Deletes a verification token when it's not needed anymore (not necessary to call ifverifyProfile(String, String...)
orchangePassword(String, String, String...)
, since they already delete the token.disableProfile
(String profileId, String... attributesToReturn) Disables a profile.enableProfile
(String profileId, String... attributesToReturn) Enables a profile.getAttributes
(String profileId, String... attributesToReturn) Returns the attributes of a profile.getProfile
(String profileId, String... attributesToReturn) Returns the profile for the specified ID.getProfileAttachment
(String attachmentId, String profileId) Given the Attachment Id and the Profile Id, gets the Actual Attachment.getProfileAttachmentInformation
(String profileId, String attachmentId) Gets Profile attachment Information.getProfileAttachments
(String profileId) List all Attachments for the given profile.getProfileByQuery
(String tenantName, String query, String... attributesToReturn) Returns the single profile that matches the specified querygetProfileByTicket
(String ticketId, String... attributesToReturn) Returns the profile for the specified ticket.getProfileByUsername
(String tenantName, String username, String... attributesToReturn) Returns the user for the specified tenant and usernamelong
getProfileCount
(String tenantName) Returns the number of profiles of the specified tenant.long
getProfileCountByQuery
(String tenantName, String query) Returns the number of profiles that match the query for the specified tenant.getProfileRange
(String tenantName, String sortBy, SortOrder sortOrder, Integer start, Integer count, String... attributesToReturn) Returns a range of profiles for the specified tenant.getProfilesByAttributeValue
(String tenantName, String attributeName, String attributeValue, String sortBy, SortOrder sortOrder, String... attributesToReturn) Returns the list of profiles that have the given attribute with the given value.getProfilesByExistingAttribute
(String tenantName, String attributeName, String sortBy, SortOrder sortOrder, String... attributesToReturn) Returns the list of profiles that have the given attribute, with any valuegetProfilesByIds
(List<String> profileIds, String sortBy, SortOrder sortOrder, String... attributesToReturn) Returns a list of profiles for the specified list of IDs.getProfilesByQuery
(String tenantName, String query, String sortBy, SortOrder sortOrder, Integer start, Integer count, String... attributesToReturn) Returns the profiles that match the specified query.getProfilesByRole
(String tenantName, String role, String sortBy, SortOrder sortOrder, String... attributesToReturn) Returns a list of profiles for a specific role and tenant.getVerificationToken
(String tokenId) Returns the verification token that corresponds to the given ID.removeAttributes
(String profileId, Collection<String> attributeNames, String... attributesToReturn) Removes a list of attributes of a profile.removeRoles
(String profileId, Collection<String> roles, String... attributesToReturn) Removes assigned roles from a profile.resetPassword
(String profileId, String resetPasswordUrl, String... attributesToReturn) Sends an email to the profile's user to indicate that the password needs to be reset.setFailedLoginAttempts
(String profileId, int failedAttempts, String... attributesToReturn) Sets the number of failed login attempts for the profile.setLastFailedLogin
(String profileId, Date lastFailedLogin, String... attributesToReturn) Sets the date of the last failed login for the profile.Updates the attributes of a profile, by merging the specified attributes with the existing attributes.updateProfile
(String profileId, String username, String password, String email, Boolean enabled, Set<String> roles, Map<String, Object> attributes, String... attributesToReturn) Updates the profile's info.verifyProfile
(String verificationTokenId, String... attributesToReturn) Sets the profile as verified if the verification token is valid.
-
Method Details
-
createProfile
Profile createProfile(String tenantName, String username, String password, String email, boolean enabled, Set<String> roles, Map<String, Object> attributes, String verificationUrl) throws ProfileExceptionCreates a new profile for a specific tenant name.- Parameters:
tenantName
- the name of the tenant to add the profile tousername
- the profile's usernamepassword
- the profile's passwordemail
- the profile's emailenabled
- if the profile should be enabled or notroles
- the profile's roles (optional)attributes
- the additional attributes to add to the profile (optional)verificationUrl
- the URL (sans token) the user needs to go in case it needs to verify the created profile (verification depends on tenant) (optional).- Returns:
- the newly created profile
- Throws:
ProfileException
-
updateProfile
Profile updateProfile(String profileId, String username, String password, String email, Boolean enabled, Set<String> roles, Map<String, Object> attributes, String... attributesToReturn) throws ProfileExceptionUpdates the profile's info.- Parameters:
profileId
- the profile's IDusername
- the new username for the profile, or null if it shouldn't be updatedpassword
- the new password for the profile, or null if it shouldn't be updatedemail
- the new email for the profile, or null if it shouldn't be updatedenabled
- if the profile should be enabled or not, or null if it shouldn't be updatedroles
- the new roles for the profile, or null if the roles shouldn't be updatedattributes
- the attributes to update, or null if no attribute should be updatedattributesToReturn
- the names of the attributes to return (null to return all attributes)- Returns:
- the updated profile
- Throws:
ProfileException
-
verifyProfile
Profile verifyProfile(String verificationTokenId, String... attributesToReturn) throws ProfileException Sets the profile as verified if the verification token is valid.- Parameters:
verificationTokenId
- the verification token IDattributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the updated profile associated to the token
- Throws:
ProfileException
-
enableProfile
Enables a profile.- Parameters:
profileId
- the profile's IDattributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the updated profile
- Throws:
ProfileException
-
setLastFailedLogin
Profile setLastFailedLogin(String profileId, Date lastFailedLogin, String... attributesToReturn) throws ProfileException Sets the date of the last failed login for the profile.- Parameters:
profileId
- the profile's IDlastFailedLogin
- the date of the last failed loginattributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the updated profile
- Throws:
ProfileException
-
setFailedLoginAttempts
Profile setFailedLoginAttempts(String profileId, int failedAttempts, String... attributesToReturn) throws ProfileException Sets the number of failed login attempts for the profile.- Parameters:
profileId
- the profile's IDfailedAttempts
- the number of failed login attemptsattributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the updated profile
- Throws:
ProfileException
-
disableProfile
Disables a profile.- Parameters:
profileId
- the profile's IDattributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the updated profile
- Throws:
ProfileException
-
addRoles
Profile addRoles(String profileId, Collection<String> roles, String... attributesToReturn) throws ProfileException Assigns roles to the profile.- Parameters:
profileId
- the profile's IDroles
- the roles to assignattributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the updated profile
- Throws:
ProfileException
-
removeRoles
Profile removeRoles(String profileId, Collection<String> roles, String... attributesToReturn) throws ProfileException Removes assigned roles from a profile.- Parameters:
profileId
- the profile's IDroles
- the roles to removeattributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the updated profile
- Throws:
ProfileException
-
getAttributes
Map<String,Object> getAttributes(String profileId, String... attributesToReturn) throws ProfileException Returns the attributes of a profile.- Parameters:
profileId
- the profile's IDattributesToReturn
- the names of the attributes to return (null to return all attributes)- Returns:
- the profile's attributes
- Throws:
ProfileException
-
updateAttributes
Profile updateAttributes(String profileId, Map<String, Object> attributes, String... attributesToReturn) throws ProfileExceptionUpdates the attributes of a profile, by merging the specified attributes with the existing attributes.- Parameters:
profileId
- the profile's IDattributes
- the new attributesattributesToReturn
- the names of the attributes to return withe the profile (null to return all attributes)- Returns:
- the updated profile
- Throws:
ProfileException
-
removeAttributes
Profile removeAttributes(String profileId, Collection<String> attributeNames, String... attributesToReturn) throws ProfileException Removes a list of attributes of a profile.- Parameters:
profileId
- the profile's IDattributeNames
- the names of the attributes to removeattributesToReturn
- the names of the attributes to return withe the profile (null to return all attributes)- Returns:
- the updated profile
- Throws:
ProfileException
-
deleteProfile
Deletes a profile.- Parameters:
profileId
- the profile's ID- Throws:
ProfileException
-
getProfileByQuery
Profile getProfileByQuery(String tenantName, String query, String... attributesToReturn) throws ProfileException Returns the single profile that matches the specified query- Parameters:
tenantName
- the tenant's namequery
- the Mongo query used to search for the profiles. Must not contain the $where operator, the tenant's name (already specified) or any non-readable attribute by the applicationattributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the profile, or null if not found
- Throws:
ProfileException
-
getProfile
Returns the profile for the specified ID.- Parameters:
profileId
- the profile's IDattributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the profile, or null if not found
- Throws:
ProfileException
-
getProfileByUsername
Profile getProfileByUsername(String tenantName, String username, String... attributesToReturn) throws ProfileException Returns the user for the specified tenant and username- Parameters:
tenantName
- the tenant's nameusername
- the profile's usernameattributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the profile, or null if not found
- Throws:
ProfileException
-
getProfileByTicket
Returns the profile for the specified ticket.- Parameters:
ticketId
- the ID ticket of the authenticated profileattributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the profile, or null if not found
- Throws:
ProfileException
-
getProfileCount
Returns the number of profiles of the specified tenant.- Parameters:
tenantName
- the tenant's name- Returns:
- the number of profiles of the specified tenant
- Throws:
ProfileException
-
getProfileCountByQuery
Returns the number of profiles that match the query for the specified tenant.- Parameters:
tenantName
- the tenant's namequery
- the Mongo query used to search for the profiles. Must not contain the $where operator, the tenant's name (already specified) or any non-readable attribute by the application- Returns:
- the number of profiles of the specified tenant
- Throws:
ProfileException
-
getProfilesByQuery
List<Profile> getProfilesByQuery(String tenantName, String query, String sortBy, SortOrder sortOrder, Integer start, Integer count, String... attributesToReturn) throws ProfileException Returns the profiles that match the specified query.- Parameters:
tenantName
- the tenant's namequery
- the Mongo query used to search for the profiles. Must not contain the $where operator, the tenant's name (already specified) or any non-readable attribute by the applicationsortBy
- profile attribute to sort the list by (optional)sortOrder
- the sort order (either ASC or DESC) (optional)start
- from the entire list of results, the position where the actual results should start (useful for pagination) (optional)count
- the number of profiles to return (optional)attributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the list of profiles found, or null if none match the query
- Throws:
ProfileException
-
getProfilesByIds
List<Profile> getProfilesByIds(List<String> profileIds, String sortBy, SortOrder sortOrder, String... attributesToReturn) throws ProfileException Returns a list of profiles for the specified list of IDs.- Parameters:
profileIds
- the IDs of the profiles to look forsortBy
- profile attribute to sort the list by (optional)sortOrder
- the sort order (either ASC or DESC) (optional)attributesToReturn
- the names of the attributes to return for each profile (null to return all attributes)- Returns:
- the list of profiles (can be smaller than the list of ids if some where not found)
- Throws:
ProfileException
-
getProfileRange
List<Profile> getProfileRange(String tenantName, String sortBy, SortOrder sortOrder, Integer start, Integer count, String... attributesToReturn) throws ProfileException Returns a range of profiles for the specified tenant.- Parameters:
tenantName
- the tenant's namesortBy
- profile attribute to sort the list by (optional)sortOrder
- the sort order (either ASC or DESC) (optional)start
- from the entire list of results, the position where the actual results should start (useful for pagination) (optional)count
- the number of profiles to return (optional)attributesToReturn
- the names of the attributes to return for each profile (null to return all attributes)- Returns:
- the list of profiles
- Throws:
ProfileException
-
getProfilesByRole
List<Profile> getProfilesByRole(String tenantName, String role, String sortBy, SortOrder sortOrder, String... attributesToReturn) throws ProfileException Returns a list of profiles for a specific role and tenant.- Parameters:
tenantName
- the tenant's namerole
- the role's namesortBy
- profile attribute to sort the list by (optional)sortOrder
- the sort order (either ASC or DESC) (optional)attributesToReturn
- the names of the attributes to return for each profile (null to return all attributes)- Returns:
- the list of profiles
- Throws:
ProfileException
-
getProfilesByExistingAttribute
List<Profile> getProfilesByExistingAttribute(String tenantName, String attributeName, String sortBy, SortOrder sortOrder, String... attributesToReturn) throws ProfileException Returns the list of profiles that have the given attribute, with any value- Parameters:
tenantName
- the tenant's nameattributeName
- the name of the attribute profiles must havesortBy
- profile attribute to sort the list by (optional)sortOrder
- the sort order (either ASC or DESC) (optional)attributesToReturn
- the names of the attributes to return for each profile (null to return all attributes)- Returns:
- the list of profiles
- Throws:
ProfileException
-
getProfilesByAttributeValue
List<Profile> getProfilesByAttributeValue(String tenantName, String attributeName, String attributeValue, String sortBy, SortOrder sortOrder, String... attributesToReturn) throws ProfileException Returns the list of profiles that have the given attribute with the given value.- Parameters:
tenantName
- the tenant's nameattributeName
- the name of the attribute profiles must haveattributeValue
- the value of the attribute profiles must havesortBy
- profile attribute to sort the list by (optional)sortOrder
- the sort order (either ASC or DESC) (optional)attributesToReturn
- the names of the attributes to return for each profile (null to return all attributes)- Returns:
- the list of profiles
- Throws:
ProfileException
-
resetPassword
Profile resetPassword(String profileId, String resetPasswordUrl, String... attributesToReturn) throws ProfileException Sends an email to the profile's user to indicate that the password needs to be reset.- Parameters:
profileId
- the profile's IDresetPasswordUrl
- the base URL to use to build the final URL the profile will use to reset their password.attributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the updated profile
- Throws:
ProfileException
-
changePassword
Profile changePassword(String resetTokenId, String newPassword, String... attributesToReturn) throws ProfileException Changes a profile's password, after a reset request has been sent.- Parameters:
resetTokenId
- the reset token IDnewPassword
- the new passwordattributesToReturn
- the names of the attributes to return with the profile (null to return all attributes)- Returns:
- the updated profile
- Throws:
ProfileException
-
createVerificationToken
Creates a token that can be sent to the user in an email as a link. After the user clicks the link, the token then can be passed toverifyProfile(String, String...)
orchangePassword(String, String, String...)
to verify that the user agrees.- Parameters:
profileId
- the profile ID of the user that needs to be contacted- Returns:
- the created token
- Throws:
ProfileException
-
getVerificationToken
Returns the verification token that corresponds to the given ID.- Parameters:
tokenId
- the token ID- Returns:
- the verification token, or null if not found
- Throws:
ProfileException
-
deleteVerificationToken
Deletes a verification token when it's not needed anymore (not necessary to call ifverifyProfile(String, String...)
orchangePassword(String, String, String...)
, since they already delete the token.- Parameters:
tokenId
- the ID of the token to delete- Throws:
ProfileException
-
addProfileAttachment
ProfileAttachment addProfileAttachment(String profileId, String attachmentName, InputStream file) throws ProfileException Saves a Profile Attachment- Parameters:
profileId
- Id of the profile owner of the attachment.attachmentName
- File name of the Attachment;file
- Actual File to be Attach.- Returns:
- A Profile Attachment Contains all the information of the Actual Attachment (including the id);
- Throws:
ProfileException
- If attachment can not be saved;
-
getProfileAttachmentInformation
ProfileAttachment getProfileAttachmentInformation(String profileId, String attachmentId) throws ProfileException Gets Profile attachment Information.- Parameters:
profileId
- Profile owner of the Attachment.attachmentId
- Attachment Id.- Returns:
- Null if Attachment Id does not exist or does not belong to the user.
- Throws:
ProfileException
- If Attachment cannot be found.
-
getProfileAttachment
Given the Attachment Id and the Profile Id, gets the Actual Attachment.- Parameters:
attachmentId
- Attachment Id to get.profileId
- Profile Owner of the Attachment.- Returns:
- Null If Attachment Id does no exist or does not belong to the given profile. InputStream of the actual File.
- Throws:
ProfileException
- If unable to get the Attachment.
-
getProfileAttachments
List all Attachments for the given profile.- Parameters:
profileId
- Profile to get all Attachments- Returns:
- The List of attachments that the profile has ,never null.
- Throws:
ProfileException
- If unable to get Profile attachments.
-