Merged WEBAPP-API (5.2.1) to 5.2.N (5.2.1)

135505 jkaabimofrad: APPSREPO-137: Made quick-share email template configurable via properties file. The template path property value could be an XPATH, a NodeRef of the template or a class path of the template.
       - Added a helper class to provide email template related utility functions
       - Added share as a default registered client for sending email - the template assets (images) will be available in share.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@135566 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jamal Kaabi-Mofrad
2017-03-03 11:41:58 +00:00
parent c149e56623
commit 2e2ecb85c5
3 changed files with 7 additions and 11 deletions

View File

@@ -147,6 +147,7 @@
<entry key="org.alfresco.service.cmr.repository.InvalidNodeRefException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_NOT_FOUND}" /> <entry key="org.alfresco.service.cmr.repository.InvalidNodeRefException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_NOT_FOUND}" />
<entry key="org.alfresco.rest.framework.core.exceptions.RelationshipResourceNotFoundException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_NOT_FOUND}" /> <entry key="org.alfresco.rest.framework.core.exceptions.RelationshipResourceNotFoundException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_NOT_FOUND}" />
<entry key="org.alfresco.service.cmr.version.VersionDoesNotExistException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_NOT_FOUND}" /> <entry key="org.alfresco.service.cmr.version.VersionDoesNotExistException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_NOT_FOUND}" />
<entry key="org.alfresco.repo.client.config.ClientAppNotFoundException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_NOT_FOUND}" />
<entry key="org.alfresco.rest.framework.core.exceptions.PermissionDeniedException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_FORBIDDEN}" /> <entry key="org.alfresco.rest.framework.core.exceptions.PermissionDeniedException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_FORBIDDEN}" />
<entry key="org.alfresco.repo.security.authority.UnknownAuthorityException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_NOT_FOUND}" /> <entry key="org.alfresco.repo.security.authority.UnknownAuthorityException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_NOT_FOUND}" />
<entry key="org.alfresco.repo.security.permissions.AccessDeniedException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_FORBIDDEN}" /> <entry key="org.alfresco.repo.security.permissions.AccessDeniedException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_FORBIDDEN}" />

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Remote API * Alfresco Remote API
* %% * %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited * Copyright (C) 2005 - 2017 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of * If the software was purchased under a paid Alfresco license, the terms of
@@ -28,7 +28,6 @@ package org.alfresco.rest.api.impl;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.model.QuickShareModel; import org.alfresco.model.QuickShareModel;
import org.alfresco.query.PagingRequest; import org.alfresco.query.PagingRequest;
import org.alfresco.repo.quickshare.QuickShareClientNotFoundException;
import org.alfresco.repo.quickshare.QuickShareLinkExpiryActionException; import org.alfresco.repo.quickshare.QuickShareLinkExpiryActionException;
import org.alfresco.repo.quickshare.QuickShareServiceImpl.QuickShareEmailRequest; import org.alfresco.repo.quickshare.QuickShareServiceImpl.QuickShareEmailRequest;
import org.alfresco.repo.search.QueryParameterDefImpl; import org.alfresco.repo.search.QueryParameterDefImpl;
@@ -385,10 +384,6 @@ public class QuickShareLinksImpl implements QuickShareLinks, RecognizedParamsExt
logger.warn("Unable to find: " + sharedId + " [" + inre.getNodeRef() + "]"); logger.warn("Unable to find: " + sharedId + " [" + inre.getNodeRef() + "]");
throw new EntityNotFoundException(sharedId); throw new EntityNotFoundException(sharedId);
} }
catch (QuickShareClientNotFoundException ex)
{
throw new InvalidArgumentException("Client is not registered [" + emailRequest.getClient() + "]");
}
} }
private Parameters getParamsWithCreatedStatus() private Parameters getParamsWithCreatedStatus()

View File

@@ -636,7 +636,7 @@ public class SharedLinkApiTest extends AbstractBaseApiTest
// Email request with minimal properties // Email request with minimal properties
QuickShareLinkEmailRequest request = new QuickShareLinkEmailRequest(); QuickShareLinkEmailRequest request = new QuickShareLinkEmailRequest();
request.setClient("sfs"); request.setClient("share");
List<String> recipients = new ArrayList<>(2); List<String> recipients = new ArrayList<>(2);
recipients.add(user2 + "@acme.test"); recipients.add(user2 + "@acme.test");
recipients.add(user2 + "@ping.test"); recipients.add(user2 + "@ping.test");
@@ -645,7 +645,7 @@ public class SharedLinkApiTest extends AbstractBaseApiTest
// Email request with all the properties // Email request with all the properties
request = new QuickShareLinkEmailRequest(); request = new QuickShareLinkEmailRequest();
request.setClient("sfs"); request.setClient("share");
request.setMessage("My custom message!"); request.setMessage("My custom message!");
request.setLocale(Locale.UK.toString()); request.setLocale(Locale.UK.toString());
recipients = Collections.singletonList(user2 + "@acme.test"); recipients = Collections.singletonList(user2 + "@acme.test");
@@ -661,14 +661,14 @@ public class SharedLinkApiTest extends AbstractBaseApiTest
request.setClient("VeryCoolClient" + System.currentTimeMillis()); request.setClient("VeryCoolClient" + System.currentTimeMillis());
List<String> user2Email = Collections.singletonList(user2 + "@acme.test"); List<String> user2Email = Collections.singletonList(user2 + "@acme.test");
request.setRecipientEmails(user2Email); request.setRecipientEmails(user2Email);
post(getEmailSharedLinkUrl(sharedId), RestApiUtil.toJsonAsString(request), 400); post(getEmailSharedLinkUrl(sharedId), RestApiUtil.toJsonAsString(request), 404);
// client is mandatory // client is mandatory
request.setClient(null); request.setClient(null);
post(getEmailSharedLinkUrl(sharedId), RestApiUtil.toJsonAsString(request), 400); post(getEmailSharedLinkUrl(sharedId), RestApiUtil.toJsonAsString(request), 400);
// recipientEmails is mandatory // recipientEmails is mandatory
request.setClient("sfs"); request.setClient("share");
request.setRecipientEmails(null); request.setRecipientEmails(null);
post(getEmailSharedLinkUrl(sharedId), RestApiUtil.toJsonAsString(request), 400); post(getEmailSharedLinkUrl(sharedId), RestApiUtil.toJsonAsString(request), 400);
@@ -679,7 +679,7 @@ public class SharedLinkApiTest extends AbstractBaseApiTest
{ {
quickShareLinks.setEnabled(false); quickShareLinks.setEnabled(false);
request = new QuickShareLinkEmailRequest(); request = new QuickShareLinkEmailRequest();
request.setClient("sfs"); request.setClient("share");
request.setRecipientEmails(user2Email); request.setRecipientEmails(user2Email);
post(getEmailSharedLinkUrl(sharedId), RestApiUtil.toJsonAsString(request), 501); post(getEmailSharedLinkUrl(sharedId), RestApiUtil.toJsonAsString(request), 501);
} }