mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged HEAD (5.2) to 5.2.N (5.2.1)
126511 jkaabimofrad: Merged FILE-FOLDER-API (5.2.0) to HEAD (5.2) 122817 jvonka: (Quick) Shared Links API - retrieve rendition content (no auth required) - TODO add extra test RA-830 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@126855 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -487,6 +487,7 @@
|
||||
<bean id="quickShareLinks" class="org.alfresco.rest.api.impl.QuickShareLinksImpl">
|
||||
<property name="quickShareService" ref="QuickShareService"/>
|
||||
<property name="nodes" ref="nodes"/>
|
||||
<property name="renditions" ref="renditions"/>
|
||||
<property name="serviceRegistry" ref="ServiceRegistry"/>
|
||||
<property name="enabled" value="${system.quickshare.enabled}" />
|
||||
</bean>
|
||||
@@ -1080,4 +1081,9 @@
|
||||
<bean class="org.alfresco.rest.api.nodes.NodeRenditionsRelation">
|
||||
<property name="renditions" ref="Renditions" />
|
||||
</bean>
|
||||
|
||||
<bean class="org.alfresco.rest.api.quicksharelinks.QuickShareLinkRenditionsRelation">
|
||||
<property name="quickShareLinks" ref="QuickShareLinks"/>
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
|
@@ -41,6 +41,7 @@ import org.alfresco.rest.framework.core.exceptions.UnsupportedResourceOperationE
|
||||
import org.alfresco.rest.framework.resource.actions.interfaces.BinaryResourceAction;
|
||||
import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAction;
|
||||
import org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceAction;
|
||||
import org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceBinaryAction;
|
||||
import org.alfresco.rest.framework.resource.actions.interfaces.ResourceAction;
|
||||
import org.alfresco.rest.framework.resource.content.BinaryResource;
|
||||
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
|
||||
@@ -158,6 +159,10 @@ public class PublicApiDeclarativeRegistry extends DeclarativeRegistry
|
||||
{
|
||||
resAction = BinaryResourceAction.Read.class;
|
||||
}
|
||||
else if (RelationshipResourceBinaryAction.Read.class.isAssignableFrom(rwm.getResource().getClass()))
|
||||
{
|
||||
resAction = RelationshipResourceBinaryAction.Read.class;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@@ -45,16 +45,17 @@ public interface QuickShareLinks
|
||||
QuickShareLink readById(String sharedId, Parameters parameters);
|
||||
|
||||
/**
|
||||
* Download content via shared link.
|
||||
* Download file content (or rendition content) via shared link.
|
||||
*
|
||||
* Note: does *not* require authenticated access for (public) shared link.
|
||||
*
|
||||
* @param sharedId
|
||||
* @param renditionId - optional
|
||||
* @param parameters {@link Parameters}
|
||||
* @return
|
||||
* @throws EntityNotFoundException
|
||||
*/
|
||||
BinaryResource readProperty(String sharedId, final Parameters parameters) throws EntityNotFoundException;
|
||||
BinaryResource readProperty(String sharedId, String renditionId, Parameters parameters) throws EntityNotFoundException;
|
||||
|
||||
/**
|
||||
* Delete the shared link.
|
||||
|
@@ -27,6 +27,7 @@ import org.alfresco.repo.security.permissions.AccessDeniedException;
|
||||
import org.alfresco.repo.tenant.TenantUtil;
|
||||
import org.alfresco.rest.api.Nodes;
|
||||
import org.alfresco.rest.api.QuickShareLinks;
|
||||
import org.alfresco.rest.api.Renditions;
|
||||
import org.alfresco.rest.api.model.ContentInfo;
|
||||
import org.alfresco.rest.api.model.QuickShareLink;
|
||||
import org.alfresco.rest.api.model.QuickShareLinkEmailRequest;
|
||||
@@ -87,6 +88,8 @@ public class QuickShareLinksImpl implements QuickShareLinks, InitializingBean
|
||||
private ServiceRegistry sr;
|
||||
private QuickShareService quickShareService;
|
||||
private Nodes nodes;
|
||||
private Renditions renditions;
|
||||
|
||||
private NodeService nodeService;
|
||||
private PersonService personService;
|
||||
private AuthorityService authorityService;
|
||||
@@ -109,6 +112,11 @@ public class QuickShareLinksImpl implements QuickShareLinks, InitializingBean
|
||||
this.nodes = nodes;
|
||||
}
|
||||
|
||||
public void setRenditions(Renditions renditions)
|
||||
{
|
||||
this.renditions = renditions;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled)
|
||||
{
|
||||
this.enabled = enabled;
|
||||
@@ -165,11 +173,12 @@ public class QuickShareLinksImpl implements QuickShareLinks, InitializingBean
|
||||
* Note: does *not* require authenticated access for (public) shared link.
|
||||
*
|
||||
* @param sharedId
|
||||
* @param renditionId - optional
|
||||
* @param parameters {@link Parameters}
|
||||
* @return
|
||||
* @throws EntityNotFoundException
|
||||
*/
|
||||
public BinaryResource readProperty(String sharedId, final Parameters parameters) throws EntityNotFoundException
|
||||
public BinaryResource readProperty(String sharedId, final String renditionId, final Parameters parameters) throws EntityNotFoundException
|
||||
{
|
||||
checkEnabled();
|
||||
checkValidShareId(sharedId);
|
||||
@@ -191,7 +200,16 @@ public class QuickShareLinksImpl implements QuickShareLinks, InitializingBean
|
||||
throw new InvalidNodeRefException(nodeRef);
|
||||
}
|
||||
|
||||
return nodes.getContent(nodeRef.getId(), parameters);
|
||||
String nodeId = nodeRef.getId();
|
||||
|
||||
if (renditionId != null)
|
||||
{
|
||||
return renditions.getContent(nodeId, renditionId, parameters);
|
||||
}
|
||||
else
|
||||
{
|
||||
return nodes.getContent(nodeId, parameters);
|
||||
}
|
||||
}
|
||||
}, networkTenantDomain);
|
||||
}
|
||||
|
@@ -92,9 +92,9 @@ public class QuickShareLinkEntityResource implements EntityResourceAction.ReadBy
|
||||
@WebApiDescription(title = "Download shared link content", description = "Download content for shared link")
|
||||
@WebApiNoAuth
|
||||
@BinaryProperties({"content"})
|
||||
public BinaryResource readProperty(String sharedId, final Parameters parameters) throws EntityNotFoundException
|
||||
public BinaryResource readProperty(String sharedId, Parameters parameters) throws EntityNotFoundException
|
||||
{
|
||||
return quickShareLinks.readProperty(sharedId, parameters);
|
||||
return quickShareLinks.readProperty(sharedId, null, parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -46,6 +46,7 @@ import org.alfresco.rest.framework.core.exceptions.ApiException;
|
||||
import org.alfresco.rest.framework.jacksonextensions.JacksonHelper;
|
||||
import org.alfresco.rest.framework.resource.actions.ActionExecutor;
|
||||
import org.alfresco.rest.framework.resource.actions.interfaces.BinaryResourceAction;
|
||||
import org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceBinaryAction;
|
||||
import org.alfresco.rest.framework.resource.content.BinaryResource;
|
||||
import org.alfresco.rest.framework.resource.content.ContentInfo;
|
||||
import org.alfresco.rest.framework.resource.content.FileBinaryResource;
|
||||
@@ -112,7 +113,21 @@ public abstract class AbstractResourceWebScript extends ApiWebScript implements
|
||||
if (toSerialize instanceof BinaryResource)
|
||||
{
|
||||
// TODO review (experimental) - can we move earlier & wrap complete execute ? Also for QuickShare (in MT/Cloud) needs to be tenant for the nodeRef (TBC).
|
||||
boolean noAuth = resource.getMetaData().isNoAuth(BinaryResourceAction.Read.class);
|
||||
boolean noAuth = false;
|
||||
|
||||
if (BinaryResourceAction.Read.class.isAssignableFrom(resource.getResource().getClass()))
|
||||
{
|
||||
noAuth = resource.getMetaData().isNoAuth(BinaryResourceAction.Read.class);
|
||||
}
|
||||
else if (RelationshipResourceBinaryAction.Read.class.isAssignableFrom(resource.getResource().getClass()))
|
||||
{
|
||||
noAuth = resource.getMetaData().isNoAuth(RelationshipResourceBinaryAction.Read.class);
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.warn("Unexpected");
|
||||
}
|
||||
|
||||
if (noAuth)
|
||||
{
|
||||
String networkTenantDomain = TenantUtil.getCurrentDomain();
|
||||
|
Reference in New Issue
Block a user