From 4bfa120a9cc5f495d02f2e7aaa51a0d42f4997f3 Mon Sep 17 00:00:00 2001 From: Glen Johnson Date: Fri, 5 Sep 2008 12:06:14 +0000 Subject: [PATCH] Changed validation check within 'start invite' operation (which checks that the task retrieved off the newly started workflow is the 'inviteToSite' task) to no longer look at the task title (which now picks up the title from the invite workflow message properties) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@10774 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../web-scripts-application-context.xml | 1 + .../repo/web/scripts/invite/Invite.java | 28 ++++++++++++++++--- .../web/scripts/invite/InviteServiceTest.java | 6 ++-- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/config/alfresco/web-scripts-application-context.xml b/config/alfresco/web-scripts-application-context.xml index f9a0c3ec5f..5f570ae9b0 100644 --- a/config/alfresco/web-scripts-application-context.xml +++ b/config/alfresco/web-scripts-application-context.xml @@ -339,6 +339,7 @@ + diff --git a/source/java/org/alfresco/repo/web/scripts/invite/Invite.java b/source/java/org/alfresco/repo/web/scripts/invite/Invite.java index c0239db1e8..b8b8096605 100644 --- a/source/java/org/alfresco/repo/web/scripts/invite/Invite.java +++ b/source/java/org/alfresco/repo/web/scripts/invite/Invite.java @@ -45,6 +45,8 @@ import org.alfresco.service.cmr.workflow.WorkflowDefinition; import org.alfresco.service.cmr.workflow.WorkflowPath; import org.alfresco.service.cmr.workflow.WorkflowService; import org.alfresco.service.cmr.workflow.WorkflowTask; +import org.alfresco.service.namespace.NamespacePrefixResolver; +import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.QName; import org.alfresco.util.GUID; import org.alfresco.web.scripts.DeclarativeWebScript; @@ -92,6 +94,7 @@ public class Invite extends DeclarativeWebScript private MutableAuthenticationDao mutableAuthenticationDao; private SiteService siteService; private NodeService nodeService; + private NamespaceService namespaceService; // user name and password generation beans private UserNameGenerator usernameGenerator; @@ -191,6 +194,17 @@ public class Invite extends DeclarativeWebScript this.nodeService = nodeService; } + /** + * Set the namespace service property + * + * @param namespaceService + * the namespace service to set + */ + public void setNamespaceService(NamespaceService namespaceService) + { + this.namespaceService = namespaceService; + } + /* * (non-Javadoc) * @@ -612,10 +626,16 @@ public class Invite extends DeclarativeWebScript "No workflow tasks where found on workflow path ID: " + wfPathId); } - // first task in workflow task list associated with the workflow path id above - // should be "wf:inviteToSiteTask", otherwise throw web script exception - String wfTaskTitle = wfTasks.get(0).title; - if (!wfTaskTitle.equals("wf:inviteToSiteTask")) + // + // first task in workflow task list (there should only be one) associated + // with the workflow path id (above) should be "wf:inviteToSiteTask", otherwise + // throw web script exception + // + + String wfTaskName = wfTasks.get(0).name; + QName wfTaskNameQName = QName.createQName(wfTaskName, this.namespaceService); + QName inviteToSiteTaskQName = InviteWorkflowModel.WF_INVITE_TASK_INVITE_TO_SITE; + if (!wfTaskNameQName.equals(inviteToSiteTaskQName)) { throw new WebScriptException(Status.STATUS_INTERNAL_SERVER_ERROR, "First workflow task found on workflow path ID: " + wfPathId diff --git a/source/java/org/alfresco/repo/web/scripts/invite/InviteServiceTest.java b/source/java/org/alfresco/repo/web/scripts/invite/InviteServiceTest.java index 920d442f03..ef9c937ccf 100644 --- a/source/java/org/alfresco/repo/web/scripts/invite/InviteServiceTest.java +++ b/source/java/org/alfresco/repo/web/scripts/invite/InviteServiceTest.java @@ -330,10 +330,8 @@ public class InviteServiceTest extends BaseWebScriptTest String inviteeLastName, String inviteeSiteRole, String siteShortName, int expectedStatus) throws Exception { - // String inviteeEmail = INVITEE_EMAIL_PREFIX + - // RandomStringUtils.randomAlphanumeric(6) - // + "@" + INVITEE_EMAIL_DOMAIN; - String inviteeEmail = "glen.johnson@alfresco.com"; + String inviteeEmail = INVITEE_EMAIL_PREFIX + RandomStringUtils.randomAlphanumeric(6) + + "@" + INVITEE_EMAIL_DOMAIN; return startInvite(inviteeFirstName, inviteeLastName, inviteeEmail, inviteeSiteRole, siteShortName, expectedStatus);