Package org.alfresco.repo.invitation
Class InvitationServiceImpl
- java.lang.Object
-
- org.alfresco.repo.invitation.InvitationServiceImpl
-
- All Implemented Interfaces:
NodeServicePolicies.BeforeDeleteNodePolicy,ClassPolicy,Policy,InvitationService
public class InvitationServiceImpl extends java.lang.Object implements InvitationService, NodeServicePolicies.BeforeDeleteNodePolicy
Implementation of invitation service.- Author:
- mrogers, Nick Smith
- See Also:
Invitation
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.alfresco.repo.policy.Policy
Policy.Arg
-
-
Field Summary
Fields Modifier and Type Field Description static intMAX_NUM_INVITEE_USER_NAME_GEN_TRIES-
Fields inherited from interface org.alfresco.repo.node.NodeServicePolicies.BeforeDeleteNodePolicy
QNAME
-
-
Constructor Summary
Constructors Constructor Description InvitationServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Invitationaccept(java.lang.String invitationId, java.lang.String ticket)Invitee accepts this invitation Nominated Invitaton process onlyvoidacceptNominatedInvitation(java.lang.String siteName, java.lang.String invitee, java.lang.String role, java.lang.String inviter)Moderator approves this invitationvoidaddSiteMembership(java.lang.String invitee, java.lang.String siteName, java.lang.String role, java.lang.String runAsUser, boolean overrideExisting)Add Invitee to Site with the site role that the inviter "started" the invite process withInvitationapprove(java.lang.String invitationId, java.lang.String reason)Moderator approves this invitationvoidapproveModeratedInvitation(java.lang.String siteName, java.lang.String invitee, java.lang.String role, java.lang.String reviewer)Moderator approves this invitationvoidbeforeDeleteNode(org.alfresco.service.cmr.repository.NodeRef nodeRef)NodeServicePolicies.BeforeDeleteNodePolicy Called immediatly prior to deletion of a web site.Invitationcancel(java.lang.String invitationId)cancel this requestvoidcancelInvitation(java.lang.String siteName, java.lang.String invitee, java.lang.String inviteId, java.lang.String currentInviteId)Inviter cancels this invitationvoiddeleteAuthenticationIfUnused(java.lang.String invitee, java.lang.String currentInviteId)Clean up invitee user account and person node when no longer in use.protected java.lang.StringgenerateWorkflowDescription(SiteInfo siteInfo, java.lang.String messageId)Generates a description for the workflowMutableAuthenticationServicegetAuthenticationService()InvitationgetInvitation(java.lang.String invitationId)Get an invitation from its invitation id
Invitations are returned which may be in progress or completed.java.util.List<java.lang.String>getInvitationServiceWorkflowNames()Get the names of the workflows which are managed by the invitation serviceorg.alfresco.service.namespace.NamespaceServicegetNamespaceService()org.alfresco.service.cmr.repository.NodeServicegetNodeService()PasswordGeneratorgetPasswordGenerator()org.alfresco.service.cmr.security.PermissionServicegetPermissionService()PersonServicegetPersonService()SiteServicegetSiteService()UserNameGeneratorgetUserNameGenerator()WorkflowServicegetWorkflowService()voidinit()Checks that all necessary properties and services have been provided.ModeratedInvitationinviteModerated(java.lang.String inviteeComments, java.lang.String inviteeUserName, Invitation.ResourceType resourceType, java.lang.String resourceName, java.lang.String inviteeRole)Start the invitation process for a ModeratedInvitationNominatedInvitationinviteNominated(java.lang.String inviteeFirstName, java.lang.String inviteeLastName, java.lang.String inviteeEmail, Invitation.ResourceType resourceType, java.lang.String resourceName, java.lang.String inviteeRole, java.lang.String acceptUrl, java.lang.String rejectUrl)Start the invitation process for a NominatedInvitationNominatedInvitationinviteNominated(java.lang.String inviteeFirstName, java.lang.String inviteeLastName, java.lang.String inviteeEmail, Invitation.ResourceType resourceType, java.lang.String resourceName, java.lang.String inviteeRole, java.lang.String serverPath, java.lang.String acceptUrl, java.lang.String rejectUrl)Start the invitation process for a NominatedInvitationNominatedInvitationinviteNominated(java.lang.String inviteeUserName, Invitation.ResourceType resourceType, java.lang.String resourceName, java.lang.String inviteeRole, java.lang.String acceptUrl, java.lang.String rejectUrl)Start the invitation process for a NominatedInvitationNominatedInvitationinviteNominated(java.lang.String inviteeUserName, Invitation.ResourceType resourceType, java.lang.String resourceName, java.lang.String inviteeRole, java.lang.String serverPath, java.lang.String acceptUrl, java.lang.String rejectUrl)Start the invitation process for a NominatedInvitationbooleanisSendEmails()java.util.List<Invitation>listPendingInvitationsForInvitee(java.lang.String invitee)list Invitations for a specific person/inviteejava.util.List<Invitation>listPendingInvitationsForInvitee(java.lang.String invitee, Invitation.ResourceType resourceType)java.util.List<Invitation>listPendingInvitationsForResource(Invitation.ResourceType resourceType, java.lang.String resourceName)list Invitations for a specific resourceInvitationreject(java.lang.String invitationId, java.lang.String reason)User or moderator rejects this requestvoidrejectModeratedInvitation(java.lang.String siteName, java.lang.String invitee, java.lang.String role, java.lang.String reviewer, java.lang.String resourceType, java.lang.String reviewComments)Moderator rejects this invitationjava.util.List<Invitation>searchInvitation(InvitationSearchCriteria criteria)Deprecated.java.util.List<Invitation>searchInvitation(InvitationSearchCriteria criteria, int limit)This is the general search invitation method returningInvitationThis is the recommended method to use for searching invitations; Consider that the performance of the method will be greatly influenced by the limit specifiedvoidsendModeratedInvitation(java.lang.String inviteId, java.lang.String emailTemplateXpath, java.lang.String emailSubjectKey, java.util.Map<java.lang.String,java.lang.Object> executionVariables)Sends the site join request notification email using the given template, subject localization key, and variables.voidsendNominatedInvitation(java.lang.String inviteId, java.lang.String emailTemplateXpath, java.lang.String emailSubjectKey, java.util.Map<java.lang.String,java.lang.Object> executionVariables)Sends the invite email using the given template, subject localization key, and variables.voidsendNominatedInvitation(java.lang.String inviteId, java.util.Map<java.lang.String,java.lang.Object> executionVariables)Implemented for backwards compatibilityvoidsetActionService(ActionService actionService)voidsetAuthenticationService(MutableAuthenticationService authenticationService)voidsetDictionaryService(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)voidsetMessageService(MessageService messageService)voidsetModeratedInvitationWorkflowId(java.lang.String moderatedInvitationWorkflowId)Sets the moderated invite activiti workflow definitionvoidsetNamespaceService(org.alfresco.service.namespace.NamespaceService namespaceService)voidsetNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)voidsetNominatedInvitationExternalWorkflowId(java.lang.String nominatedInvitationExternalWorkflowId)Sets the nominated invite activiti workflow definition for external usersvoidsetNominatedInvitationWorkflowId(java.lang.String nominatedInvitationWorkflowId)Sets the nominated invite activiti workflow definition for internal usersvoidsetPasswordGenerator(PasswordGenerator passwordGenerator)voidsetPermissionService(org.alfresco.service.cmr.security.PermissionService permissionService)voidsetPersonService(PersonService personService)voidsetPolicyComponent(PolicyComponent policyComponent)Set the policy componentvoidsetRepositoryHelper(Repository repositoryHelper)voidsetSendEmails(boolean sendEmails)voidsetServiceRegistry(ServiceRegistry serviceRegistry)voidsetSiteService(SiteService siteService)voidsetSysAdminParams(SysAdminParams sysAdminParams)voidsetTemplateService(TemplateService templateService)voidsetUserNameGenerator(UserNameGenerator usernameGenerator)voidsetWorkflowAdminService(WorkflowAdminService workflowAdminService)voidsetWorkflowService(WorkflowService workflowService)Set the workflow serviceModeratedInvitationupdateModeratedInvitation(java.lang.String inviteeId, java.lang.String siteShortName, java.lang.String inviteeComments)Update the invitee comments for an existing moderated invitation
-
-
-
Field Detail
-
MAX_NUM_INVITEE_USER_NAME_GEN_TRIES
public static final int MAX_NUM_INVITEE_USER_NAME_GEN_TRIES
- See Also:
- Constant Field Values
-
-
Method Detail
-
setPolicyComponent
public void setPolicyComponent(PolicyComponent policyComponent)
Set the policy component- Parameters:
policyComponent- policy component
-
setNominatedInvitationWorkflowId
public void setNominatedInvitationWorkflowId(java.lang.String nominatedInvitationWorkflowId)
Sets the nominated invite activiti workflow definition for internal users- Parameters:
nominatedInvitationWorkflowId-
-
setNominatedInvitationExternalWorkflowId
public void setNominatedInvitationExternalWorkflowId(java.lang.String nominatedInvitationExternalWorkflowId)
Sets the nominated invite activiti workflow definition for external users- Parameters:
nominatedInvitationExternalWorkflowId-
-
setModeratedInvitationWorkflowId
public void setModeratedInvitationWorkflowId(java.lang.String moderatedInvitationWorkflowId)
Sets the moderated invite activiti workflow definition- Parameters:
moderatedInvitationWorkflowId-
-
init
public void init()
Checks that all necessary properties and services have been provided.
-
getInvitationServiceWorkflowNames
public java.util.List<java.lang.String> getInvitationServiceWorkflowNames()
Get the names of the workflows which are managed by the invitation service- Specified by:
getInvitationServiceWorkflowNamesin interfaceInvitationService- Returns:
- the workflows which are managed by the invitation service
-
inviteNominated
public NominatedInvitation inviteNominated(java.lang.String inviteeUserName, Invitation.ResourceType resourceType, java.lang.String resourceName, java.lang.String inviteeRole, java.lang.String serverPath, java.lang.String acceptUrl, java.lang.String rejectUrl)
Start the invitation process for a NominatedInvitation- Specified by:
inviteNominatedin interfaceInvitationService- Parameters:
inviteeUserName- Alfresco user name of the inviteeresourceType- resourceTyperesourceName- StringinviteeRole- StringserverPath- StringacceptUrl- StringrejectUrl- String- Returns:
- the nominated invitation which will contain the invitationId and ticket which will uniqely identify this invitation for the rest of the workflow.
- Throws:
InvitationExceptionInvitationExceptionUserErrorInvitationExceptionForbidden
-
inviteNominated
public NominatedInvitation inviteNominated(java.lang.String inviteeUserName, Invitation.ResourceType resourceType, java.lang.String resourceName, java.lang.String inviteeRole, java.lang.String acceptUrl, java.lang.String rejectUrl)
Start the invitation process for a NominatedInvitation- Specified by:
inviteNominatedin interfaceInvitationService- Parameters:
inviteeUserName- Alfresco user name of the inviteeresourceType- resourceTyperesourceName- StringinviteeRole- StringacceptUrl- StringrejectUrl- String- Returns:
- the nominated invitation which will contain the invitationId and ticket which will uniqely identify this invitation for the rest of the workflow.
- Throws:
InvitationExceptionInvitationExceptionUserErrorInvitationExceptionForbidden
-
inviteNominated
public NominatedInvitation inviteNominated(java.lang.String inviteeFirstName, java.lang.String inviteeLastName, java.lang.String inviteeEmail, Invitation.ResourceType resourceType, java.lang.String resourceName, java.lang.String inviteeRole, java.lang.String acceptUrl, java.lang.String rejectUrl)
Start the invitation process for a NominatedInvitation- Specified by:
inviteNominatedin interfaceInvitationService- Parameters:
inviteeFirstName- StringinviteeLastName- StringinviteeEmail- StringresourceType- Invitation.ResourceTyperesourceName- StringinviteeRole- StringacceptUrl- StringrejectUrl- String- Returns:
- the nominated invitation which will contain the invitationId and ticket which will uniqely identify this invitation for the rest of the workflow.
- Throws:
InvitationExceptionInvitationExceptionUserErrorInvitationExceptionForbidden
-
inviteNominated
public NominatedInvitation inviteNominated(java.lang.String inviteeFirstName, java.lang.String inviteeLastName, java.lang.String inviteeEmail, Invitation.ResourceType resourceType, java.lang.String resourceName, java.lang.String inviteeRole, java.lang.String serverPath, java.lang.String acceptUrl, java.lang.String rejectUrl)
Start the invitation process for a NominatedInvitation- Specified by:
inviteNominatedin interfaceInvitationService- Parameters:
inviteeFirstName- StringinviteeLastName- StringinviteeEmail- StringresourceType- Invitation.ResourceTypresourceName- StringinviteeRole- StringserverPath- StringacceptUrl- StringrejectUrl- String- Returns:
- the nominated invitation which will contain the invitationId and ticket which will uniqely identify this invitation for the rest of the workflow.
- Throws:
InvitationExceptionInvitationExceptionUserErrorInvitationExceptionForbidden
-
inviteModerated
public ModeratedInvitation inviteModerated(java.lang.String inviteeComments, java.lang.String inviteeUserName, Invitation.ResourceType resourceType, java.lang.String resourceName, java.lang.String inviteeRole)
Start the invitation process for a ModeratedInvitation- Specified by:
inviteModeratedin interfaceInvitationService- Parameters:
inviteeComments- why does the invitee want access to the resource ?inviteeUserName- who is to be invitedresourceType- Invitation .ResourceType what resource type ?resourceName- which resourceinviteeRole- which role ?
-
accept
public Invitation accept(java.lang.String invitationId, java.lang.String ticket)
Invitee accepts this invitation Nominated Invitaton process only- Specified by:
acceptin interfaceInvitationService- Parameters:
invitationId- the invitation idticket- the ticket produced when creating the invitation.- Returns:
- the invitation
-
approve
public Invitation approve(java.lang.String invitationId, java.lang.String reason)
Moderator approves this invitation- Specified by:
approvein interfaceInvitationService- Parameters:
invitationId- the request idreason- comments about the acceptance
-
reject
public Invitation reject(java.lang.String invitationId, java.lang.String reason)
User or moderator rejects this request- Specified by:
rejectin interfaceInvitationService- Parameters:
invitationId- Stringreason- , optional reason for rejection
-
cancel
public Invitation cancel(java.lang.String invitationId)
cancel this request- Specified by:
cancelin interfaceInvitationService
-
getInvitation
public Invitation getInvitation(java.lang.String invitationId)
Get an invitation from its invitation id
Invitations are returned which may be in progress or completed.- Specified by:
getInvitationin interfaceInvitationService- Parameters:
invitationId- ;- Returns:
- the invitation.
- Throws:
InvitationExceptionNotFound- the invitation does not exist.InvitationExceptionUserError
-
listPendingInvitationsForInvitee
public java.util.List<Invitation> listPendingInvitationsForInvitee(java.lang.String invitee)
list Invitations for a specific person/invitee- Specified by:
listPendingInvitationsForInviteein interfaceInvitationService- Parameters:
invitee- alfresco user id of person being invited
-
listPendingInvitationsForInvitee
public java.util.List<Invitation> listPendingInvitationsForInvitee(java.lang.String invitee, Invitation.ResourceType resourceType)
- Specified by:
listPendingInvitationsForInviteein interfaceInvitationService
-
listPendingInvitationsForResource
public java.util.List<Invitation> listPendingInvitationsForResource(Invitation.ResourceType resourceType, java.lang.String resourceName)
list Invitations for a specific resource- Specified by:
listPendingInvitationsForResourcein interfaceInvitationService- Parameters:
resourceType- Invitation.ResourceTyperesourceName- String
-
searchInvitation
public java.util.List<Invitation> searchInvitation(InvitationSearchCriteria criteria)
Deprecated.This is the general search invitation method returningInvitationThis method has a hardcoded limit of 200 invitations to return. It has been deprecated and it is recommended to use the overloaded version for which you can specify an appropriate limit depending on the needs- Specified by:
searchInvitationin interfaceInvitationService- Parameters:
criteria- InvitationSearchCriteria search criteria- Returns:
- the list of invitations
-
searchInvitation
public java.util.List<Invitation> searchInvitation(InvitationSearchCriteria criteria, int limit)
This is the general search invitation method returningInvitationThis is the recommended method to use for searching invitations; Consider that the performance of the method will be greatly influenced by the limit specified- Specified by:
searchInvitationin interfaceInvitationService- Parameters:
criteria- search criterialimit- maximum number of IDs to return. If less than 1, there is no limit.- Returns:
- the list of invitations
-
setWorkflowService
public void setWorkflowService(WorkflowService workflowService)
Set the workflow service- Parameters:
workflowService- WorkflowService
-
setWorkflowAdminService
public void setWorkflowAdminService(WorkflowAdminService workflowAdminService)
- Parameters:
workflowAdminService- the workflowAdminService to set
-
getWorkflowService
public WorkflowService getWorkflowService()
- Returns:
- the workflow service
-
setActionService
public void setActionService(ActionService actionService)
- Parameters:
actionService- the actionService to set
-
setPersonService
public void setPersonService(PersonService personService)
-
getPersonService
public PersonService getPersonService()
-
setSiteService
public void setSiteService(SiteService siteService)
-
getSiteService
public SiteService getSiteService()
-
setAuthenticationService
public void setAuthenticationService(MutableAuthenticationService authenticationService)
-
getAuthenticationService
public MutableAuthenticationService getAuthenticationService()
-
setUserNameGenerator
public void setUserNameGenerator(UserNameGenerator usernameGenerator)
-
getUserNameGenerator
public UserNameGenerator getUserNameGenerator()
-
setPasswordGenerator
public void setPasswordGenerator(PasswordGenerator passwordGenerator)
-
getPasswordGenerator
public PasswordGenerator getPasswordGenerator()
-
setDictionaryService
public void setDictionaryService(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)
-
setNamespaceService
public void setNamespaceService(org.alfresco.service.namespace.NamespaceService namespaceService)
-
getNamespaceService
public org.alfresco.service.namespace.NamespaceService getNamespaceService()
-
setPermissionService
public void setPermissionService(org.alfresco.service.cmr.security.PermissionService permissionService)
-
getPermissionService
public org.alfresco.service.cmr.security.PermissionService getPermissionService()
-
setNodeService
public void setNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)
-
getNodeService
public org.alfresco.service.cmr.repository.NodeService getNodeService()
-
updateModeratedInvitation
public ModeratedInvitation updateModeratedInvitation(java.lang.String inviteeId, java.lang.String siteShortName, java.lang.String inviteeComments)
Description copied from interface:InvitationServiceUpdate the invitee comments for an existing moderated invitation- Specified by:
updateModeratedInvitationin interfaceInvitationService- Returns:
- the invitation
-
beforeDeleteNode
public void beforeDeleteNode(org.alfresco.service.cmr.repository.NodeRef nodeRef)
NodeServicePolicies.BeforeDeleteNodePolicy Called immediatly prior to deletion of a web site.- Specified by:
beforeDeleteNodein interfaceNodeServicePolicies.BeforeDeleteNodePolicy- Parameters:
nodeRef- the node reference
-
generateWorkflowDescription
protected java.lang.String generateWorkflowDescription(SiteInfo siteInfo, java.lang.String messageId)
Generates a description for the workflow- Parameters:
siteInfo- The site to generate a description formessageId- The resource bundle key to use for the description- Returns:
- The workflow description
-
setSendEmails
public void setSendEmails(boolean sendEmails)
- Parameters:
sendEmails- the sendEmails to set
-
isSendEmails
public boolean isSendEmails()
- Specified by:
isSendEmailsin interfaceInvitationService- Returns:
- true if emails are sent on invite.
-
setSysAdminParams
public void setSysAdminParams(SysAdminParams sysAdminParams)
-
setTemplateService
public void setTemplateService(TemplateService templateService)
-
setMessageService
public void setMessageService(MessageService messageService)
- Parameters:
messageService- the messageService to set
-
setRepositoryHelper
public void setRepositoryHelper(Repository repositoryHelper)
- Parameters:
repositoryHelper- the repositoryHelper to set
-
setServiceRegistry
public void setServiceRegistry(ServiceRegistry serviceRegistry)
- Parameters:
serviceRegistry- the serviceRegistry to set
-
acceptNominatedInvitation
public void acceptNominatedInvitation(java.lang.String siteName, java.lang.String invitee, java.lang.String role, java.lang.String inviter)Description copied from interface:InvitationServiceModerator approves this invitation- Specified by:
acceptNominatedInvitationin interfaceInvitationService
-
approveModeratedInvitation
public void approveModeratedInvitation(java.lang.String siteName, java.lang.String invitee, java.lang.String role, java.lang.String reviewer)Description copied from interface:InvitationServiceModerator approves this invitation- Specified by:
approveModeratedInvitationin interfaceInvitationService
-
addSiteMembership
public void addSiteMembership(java.lang.String invitee, java.lang.String siteName, java.lang.String role, java.lang.String runAsUser, boolean overrideExisting)Add Invitee to Site with the site role that the inviter "started" the invite process with- Parameters:
invitee-siteName-role-runAsUser-siteService-overrideExisting-
-
rejectModeratedInvitation
public void rejectModeratedInvitation(java.lang.String siteName, java.lang.String invitee, java.lang.String role, java.lang.String reviewer, java.lang.String resourceType, java.lang.String reviewComments)Description copied from interface:InvitationServiceModerator rejects this invitation- Specified by:
rejectModeratedInvitationin interfaceInvitationService
-
deleteAuthenticationIfUnused
public void deleteAuthenticationIfUnused(java.lang.String invitee, java.lang.String currentInviteId)Description copied from interface:InvitationServiceClean up invitee user account and person node when no longer in use. They are deemed to no longer be in use when the invitee user account is still disabled and there are no outstanding pending invites for that invitee.- Specified by:
deleteAuthenticationIfUnusedin interfaceInvitationService
-
sendNominatedInvitation
public void sendNominatedInvitation(java.lang.String inviteId, java.util.Map<java.lang.String,java.lang.Object> executionVariables)Description copied from interface:InvitationServiceImplemented for backwards compatibility- Specified by:
sendNominatedInvitationin interfaceInvitationService
-
sendNominatedInvitation
public void sendNominatedInvitation(java.lang.String inviteId, java.lang.String emailTemplateXpath, java.lang.String emailSubjectKey, java.util.Map<java.lang.String,java.lang.Object> executionVariables)Description copied from interface:InvitationServiceSends the invite email using the given template, subject localization key, and variables.- Specified by:
sendNominatedInvitationin interfaceInvitationServiceemailTemplateXpath- the XPath to the email template in the repositoryemailSubjectKey- the subject of the emailexecutionVariables- the variables used to populate the email
-
sendModeratedInvitation
public void sendModeratedInvitation(java.lang.String inviteId, java.lang.String emailTemplateXpath, java.lang.String emailSubjectKey, java.util.Map<java.lang.String,java.lang.Object> executionVariables)Description copied from interface:InvitationServiceSends the site join request notification email using the given template, subject localization key, and variables.- Specified by:
sendModeratedInvitationin interfaceInvitationService
-
cancelInvitation
public void cancelInvitation(java.lang.String siteName, java.lang.String invitee, java.lang.String inviteId, java.lang.String currentInviteId)Description copied from interface:InvitationServiceInviter cancels this invitation- Specified by:
cancelInvitationin interfaceInvitationService
-
-