mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged BRANCHES/DEV/BRIAN/PUBLISHING to HEAD:
29482: Publishing: - Added support for LinkedIn status updates 29486: Social Publishing UI Updates, including: - Dialogue: Complete UI rework - Publishing History: display of unpublish event support - Created Alfresco.util.toggleClass function 29491: Publishing: - Added correct list of supported MIME types the the YouTube channel type 29493: Publishing: - Added video/mp4 to YouTube supported MIME types 29496: ChannelsGet now filters out channels that are not authorised. Added a space before the node URL on status updates. Extended unit tests to check behaviour for non-Admin users. 29513: Adds specific http client libraries to prevent the mac falling back to it's buggy default implementation (which, e.g. doesn't send Content-Length headers if the content length is zero). Required for Flickr support (their publish API requires both a content length header and zero length content. It returns a 411 error using the default Mac libs). 29534: Fixed PublishingEventsGet REST method. ChannelService getChannels() methods now support filtering by publish permissions. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@29542 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -93,15 +93,14 @@ public class ChannelHelper
|
||||
nodeService.createNode(parent, ASSOC_CONTAINS, channelQName, channelNodeType, props);
|
||||
NodeRef channelNode = channelAssoc.getChildRef();
|
||||
// Allow any user to read Channel permissions.
|
||||
permissionService.setPermission(channelNode, PermissionService.ALL_AUTHORITIES, PermissionService.READ_PERMISSIONS, true);
|
||||
permissionService.setPermission(channelNode, PermissionService.ALL_AUTHORITIES, PermissionService.READ_ASSOCIATIONS, true);
|
||||
return channelNode;
|
||||
}
|
||||
|
||||
public Channel buildChannelObject(NodeRef nodeRef, ChannelService channelService)
|
||||
{
|
||||
if(nodeRef == null ||
|
||||
nodeService.exists(nodeRef)==false ||
|
||||
permissionService.hasPermission(nodeRef, PermissionService.ADD_CHILDREN)!= AccessStatus.ALLOWED)
|
||||
nodeService.exists(nodeRef)==false)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
@@ -259,16 +258,40 @@ public class ChannelHelper
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<Channel> getChannels(NodeRef channelContainer, final ChannelService channelService)
|
||||
public List<Channel> getAllChannels(NodeRef channelContainer, final ChannelService channelService)
|
||||
{
|
||||
List<ChildAssociationRef> channelAssocs = getChannelAssocs(channelContainer);
|
||||
return CollectionUtils.transform(channelAssocs, getChannelTransformer(channelService));
|
||||
return CollectionUtils.transform(channelAssocs, getChannelTransformer(channelService, false));
|
||||
}
|
||||
|
||||
public List<Channel> getChannelsByType(NodeRef containerNode, String channelTypeId, ChannelService channelService)
|
||||
|
||||
public List<Channel> getChannelsForTypes(final NodeRef containerNode, List<ChannelType> types, final ChannelService channelService, final boolean checkPermissions)
|
||||
{
|
||||
return CollectionUtils.transformFlat(types, new Function<ChannelType, List<Channel>>()
|
||||
{
|
||||
public List<Channel> apply(ChannelType channelType)
|
||||
{
|
||||
return getChannelsByType(containerNode, channelType.getId(), channelService, checkPermissions);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public List<Channel> getChannelsByType(NodeRef containerNode, String channelTypeId, ChannelService channelService, boolean checkPermissions)
|
||||
{
|
||||
List<ChildAssociationRef> channelAssocs = getChannelAssocsByType(containerNode, channelTypeId);
|
||||
return CollectionUtils.transform(channelAssocs, getChannelTransformer(channelService));
|
||||
return CollectionUtils.transform(channelAssocs, getChannelTransformer(channelService, checkPermissions));
|
||||
}
|
||||
|
||||
public List<Channel> filterAuthorisedChannels(Collection<Channel> channels)
|
||||
{
|
||||
return CollectionUtils.filter(channels, new Filter<Channel>()
|
||||
{
|
||||
@Override
|
||||
public Boolean apply(Channel value)
|
||||
{
|
||||
return value.isAuthorised();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public List<ChannelType> getReleventChannelTypes(final NodeRef nodeToPublish, Collection<ChannelType> channelTypes)
|
||||
@@ -334,18 +357,28 @@ public class ChannelHelper
|
||||
return null;
|
||||
}
|
||||
|
||||
private Function<ChildAssociationRef, Channel> getChannelTransformer(final ChannelService channelService)
|
||||
private Function<ChildAssociationRef, Channel> getChannelTransformer(final ChannelService channelService, final boolean checkPermissions)
|
||||
{
|
||||
return new Function<ChildAssociationRef, Channel>()
|
||||
{
|
||||
public Channel apply(ChildAssociationRef value)
|
||||
{
|
||||
NodeRef channelNode = value.getChildRef();
|
||||
if(checkPermissions && hasPublishPermissions(channelNode)==false)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return buildChannelObject(channelNode, channelService);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public boolean hasPublishPermissions(NodeRef channelNode)
|
||||
{
|
||||
AccessStatus access = permissionService.hasPermission(channelNode, PermissionService.ADD_CHILDREN);
|
||||
return AccessStatus.ALLOWED == access;
|
||||
}
|
||||
|
||||
public boolean isChannelAuthorised(NodeRef channelNode)
|
||||
{
|
||||
Boolean isAuthorised = Boolean.FALSE;
|
||||
|
Reference in New Issue
Block a user