Obsolete Pages{{Obsolete}}
The official documentation is at: http://docs.alfresco.com
This document is work in progress, but any comments will be gladly received.
At the moment in Alfresco 3, the site invitation process and web project invitation are separate pieces of logic spread through several packages, although they clearly share some common requirements and should have a common solution.
The 'invitation' document should form the basis of a new service which is exposed by the new Java Service with script and REST bindings. The existing REST bindings should be considered for deprecation.
The following page proposes a new 'Invite Service' to achieve the following goals.
Actors:
Invite workflow definition diagram.png
Need to gather together an invite request, user identifier, resource identifier and role. Pump the request through a workflow and then apply the result of the workflow to the resource. The workflow may either be an approve and add (existing Site). Or add and inform (existing Web Project).
Using the Invite functionality on a Site, if the Invite fails you get a fade in and fade out message saying '..... 1 failures' but no further information about why the failure occurred or what made it occur.
The invitations process will need to consider the combination of the following.
Request Type
User Identifier
Resource Identifier
Role Indetifier
Kicks off correct workflow for each invitation.
Need separate workflows for Web Projects and Sites. Web Projects are add and inform. Sites are approve and accept.
The processing of Groups is different to users who are already Alfresco users to prople who need to be invited.
In addition to catering for the above How configurable does the workflow need to be?
Do we need to be able to configure different email messages for each resource? Probably ?
public interface InvitationHistory
{
Date when;
String who;
String what;
}
public interface Invitation
{
// status created, approved, rejected, accepted, declined, error
String status;
// which web project or site
String resourceId;
// Request parameters
String requestMessage;
// basics
Date createdOn;
String createdBy;
Date modifiedOn;
String modifiedBy;
// approval
Date approvedOn;
String approvedBy;
// invitation history
InvitationHistory[] history;
}
//invitations
/**
* crates an invitation and returns the invitation ref
* @param request
* @return the invitation request
* @throws some sort of unknown request exception
*/
public String invite(InviteRequest request);
/**
*
*/
public String inviteSite(String userId, String siteRef, request);
/**
*
*/
public String inviteWebProject(String webProject, String userId, String role);
/**
* Accept an invitation
* @param invitationRef, unique reference for an invitation, returned by invite method
*/
public void accept(String invitationRef);
/**
* reject an invitation
* @param invitationRef, unique reference for an invitation, returned by invite method
*/
public void decline (Sting invitationRef);
/**
* getInvitation
* @param invitationRef, unique reference for an invitation, returned by invite method
*/
public Invitation getInvitation(String invitationRef);
//management
ListCriteria {
page
page size
resource
status
user
}
Set<Invitation> listInvitations(ListCriteria criteria);
// notification
public void remind(RemindCriteria reminders);
// expiry
public void expire(ExpireCriteria criteria);
site/invitations/GET/PUT/POST/DELETE invitation.
webproject/invitations
site/invitations
invites/{inviteref}
How configurable does the workflow process need to be?
Permissions. Do we need some new permissions for inviter, approver etc?
Do we need InviteHistory or can we use standard Audit functionailty?
Start with the idea of a generic / abstract workflow. Plug in specialist implementations.
Does this work ? Is it useful ?
Ask for and offer help to other Alfresco Content Services Users and members of the Alfresco team.
Related links:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.