mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (5.0/Cloud)
75088: Merged WAT2 (5.0/Cloud) to HEAD-BUG-FIX (5.0/Cloud) 73976: Improvements to activities post events for ACE-1707 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@75416 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -32,8 +32,12 @@ import org.alfresco.repo.events.EventPublisher;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.repo.tenant.TenantService;
|
||||
import org.alfresco.service.cmr.activities.ActivityPostService;
|
||||
import org.alfresco.service.cmr.model.FileFolderService;
|
||||
import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.repository.ContentData;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.util.FileFilterMode.Client;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.json.JSONException;
|
||||
@@ -54,6 +58,8 @@ public class ActivityPostServiceImpl implements ActivityPostService
|
||||
private ActivityPostDAO postDAO;
|
||||
private TenantService tenantService;
|
||||
private EventPublisher eventPublisher;
|
||||
private FileFolderService fileFolderService;
|
||||
|
||||
private int estGridSize = 1;
|
||||
|
||||
private boolean userNamesAreCaseSensitive = false;
|
||||
@@ -82,13 +88,30 @@ public class ActivityPostServiceImpl implements ActivityPostService
|
||||
{
|
||||
this.eventPublisher = eventPublisher;
|
||||
}
|
||||
|
||||
|
||||
public void setFileFolderService(FileFolderService fileFolderService)
|
||||
{
|
||||
this.fileFolderService = fileFolderService;
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.activities.ActivityService#postActivity(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
|
||||
*/
|
||||
public void postActivity(String activityType, String siteId, String appTool, String activityData)
|
||||
{
|
||||
postActivity(activityType, siteId, appTool, activityData, ActivityPostEntity.STATUS.PENDING, getCurrentUser(), null);
|
||||
postActivity(activityType, siteId, appTool, activityData, ActivityPostEntity.STATUS.PENDING, getCurrentUser(), null, null);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void postActivity(String activityType, String siteId, String appTool, String activityData, Client client)
|
||||
{
|
||||
postActivity(activityType, siteId, appTool, activityData, ActivityPostEntity.STATUS.PENDING, getCurrentUser(), client, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postActivity(String activityType, String siteId, String appTool, String jsonActivityData, Client client, FileInfo contentNodeInfo)
|
||||
{
|
||||
postActivity(activityType, siteId, appTool, jsonActivityData, ActivityPostEntity.STATUS.PENDING, getCurrentUser(), client, contentNodeInfo);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
@@ -96,7 +119,7 @@ public class ActivityPostServiceImpl implements ActivityPostService
|
||||
*/
|
||||
public void postActivity(String activityType, String siteId, String appTool, String activityData, String userId)
|
||||
{
|
||||
postActivity(activityType, siteId, appTool, activityData, ActivityPostEntity.STATUS.PENDING, userId, null);
|
||||
postActivity(activityType, siteId, appTool, activityData, ActivityPostEntity.STATUS.PENDING, userId,null, null);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
@@ -109,7 +132,7 @@ public class ActivityPostServiceImpl implements ActivityPostService
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("{").append("\""+PostLookup.JSON_NODEREF_LOOKUP+"\":\"").append(nodeRef.toString()).append("\"").append("}");
|
||||
|
||||
postActivity(activityType, siteId, appTool, sb.toString(), ActivityPostEntity.STATUS.PENDING, getCurrentUser(), nodeRef);
|
||||
postActivity(activityType, siteId, appTool, sb.toString(), ActivityPostEntity.STATUS.PENDING, getCurrentUser(),null, null);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
@@ -124,7 +147,7 @@ public class ActivityPostServiceImpl implements ActivityPostService
|
||||
.append("\"name\":\"").append(name).append("\"")
|
||||
.append("}");
|
||||
|
||||
postActivity(activityType, siteId, appTool, sb.toString(), ActivityPostEntity.STATUS.PENDING, getCurrentUser(),nodeRef);
|
||||
postActivity(activityType, siteId, appTool, sb.toString(), ActivityPostEntity.STATUS.PENDING, getCurrentUser(),null,null);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
@@ -145,12 +168,14 @@ public class ActivityPostServiceImpl implements ActivityPostService
|
||||
.append("\""+PostLookup.JSON_NODEREF_PARENT+"\":\"").append(parentNodeRef.toString()).append("\"")
|
||||
.append("}");
|
||||
|
||||
postActivity(activityType, siteId, appTool, sb.toString(), ActivityPostEntity.STATUS.PENDING, getCurrentUser(), nodeRef);
|
||||
postActivity(activityType, siteId, appTool, sb.toString(), ActivityPostEntity.STATUS.PENDING, getCurrentUser(), null,null);
|
||||
}
|
||||
|
||||
private void postActivity(final String activityType, String siteId, String appTool, String activityData, ActivityPostEntity.STATUS status, String userId, NodeRef nodeRef)
|
||||
private void postActivity(final String activityType, String siteId, String appTool, String activityData, ActivityPostEntity.STATUS status, String userId, final Client client, final FileInfo contentNodeInfo)
|
||||
{
|
||||
|
||||
NodeRef nodeRef = null;
|
||||
|
||||
try
|
||||
{
|
||||
// optional - default to empty string
|
||||
@@ -198,7 +223,7 @@ public class ActivityPostServiceImpl implements ActivityPostService
|
||||
jo.put(PostLookup.JSON_TENANT_DOMAIN, tenantService.getCurrentUserDomain());
|
||||
activityData = jo.toString();
|
||||
}
|
||||
checkNodeRef(jo);
|
||||
nodeRef = checkNodeRef(jo);
|
||||
|
||||
// ALF-10362 - belts-and-braces (note: Share sets "title" from cm:name)
|
||||
if (jo.has(PostLookup.JSON_TITLE))
|
||||
@@ -244,8 +269,8 @@ public class ActivityPostServiceImpl implements ActivityPostService
|
||||
final Date postDate = new Date();
|
||||
final ActivityPostEntity activityPost = new ActivityPostEntity();
|
||||
final String network = tenantService.getName(siteId);
|
||||
final String nodeId = nodeRef!=null?nodeRef.toString():null;
|
||||
final String site = siteId;
|
||||
final NodeRef finalNodeRef = nodeRef;
|
||||
|
||||
//MNT-9104 If username contains uppercase letters the action of joining a site will not be displayed in "My activities"
|
||||
if (! userNamesAreCaseSensitive)
|
||||
@@ -263,11 +288,47 @@ public class ActivityPostServiceImpl implements ActivityPostService
|
||||
activityPost.setLastModified(postDate);
|
||||
|
||||
eventPublisher.publishEvent(new EventPreparator(){
|
||||
|
||||
@Override
|
||||
public Event prepareEvent(String user, String networkId, String transactionId)
|
||||
{
|
||||
return new ActivityEvent(activityType, transactionId, networkId, postDate.getTime(), user, nodeId,
|
||||
site, null, null, activityPost.getActivityData());
|
||||
{
|
||||
String filename = null, nodeType = null, mime = null, encoding = null;
|
||||
long size = 0l;
|
||||
String nodeId = finalNodeRef!=null?finalNodeRef.getId():null;
|
||||
FileInfo fileInfo = contentNodeInfo;
|
||||
|
||||
//Get content info if available
|
||||
if (fileInfo == null && finalNodeRef !=null)
|
||||
{
|
||||
fileInfo = fileFolderService.getFileInfo(finalNodeRef);
|
||||
}
|
||||
|
||||
//Use content info
|
||||
if (fileInfo != null)
|
||||
{
|
||||
if (nodeId == null)
|
||||
{
|
||||
nodeId = fileInfo.getNodeRef().getId();
|
||||
}
|
||||
filename = fileInfo.getName();
|
||||
nodeType = fileInfo.getType().toString();
|
||||
|
||||
if (!fileInfo.isFolder())
|
||||
{
|
||||
//It's a file so get more info
|
||||
ContentData contentData = fileInfo.getContentData();
|
||||
if (contentData!=null)
|
||||
{
|
||||
mime = contentData.getMimetype();
|
||||
size = contentData.getSize();
|
||||
encoding = contentData.getEncoding();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return new ActivityEvent(activityType, transactionId, networkId, user, nodeId,
|
||||
site, nodeType, client, activityPost.getActivityData(), filename, mime, size, encoding);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -323,7 +384,7 @@ public class ActivityPostServiceImpl implements ActivityPostService
|
||||
* @param activityPost
|
||||
* @throws JSONException
|
||||
*/
|
||||
private void checkNodeRef(JSONObject jo) throws JSONException
|
||||
private NodeRef checkNodeRef(JSONObject jo) throws JSONException
|
||||
{
|
||||
String nodeRefStr = null;
|
||||
try
|
||||
@@ -331,12 +392,14 @@ public class ActivityPostServiceImpl implements ActivityPostService
|
||||
if (jo.has(PostLookup.JSON_NODEREF))
|
||||
{
|
||||
nodeRefStr = jo.getString(PostLookup.JSON_NODEREF);
|
||||
new NodeRef(nodeRefStr);
|
||||
return new NodeRef(nodeRefStr);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new IllegalArgumentException("Invalid node ref: " + nodeRefStr);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -40,6 +40,7 @@ import org.alfresco.repo.tenant.TenantService;
|
||||
import org.alfresco.service.cmr.activities.ActivityPostService;
|
||||
import org.alfresco.service.cmr.activities.ActivityService;
|
||||
import org.alfresco.service.cmr.activities.FeedControl;
|
||||
import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.repository.AssociationRef;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
@@ -49,6 +50,7 @@ import org.alfresco.service.cmr.security.PersonService;
|
||||
import org.alfresco.service.cmr.site.SiteInfo;
|
||||
import org.alfresco.service.cmr.site.SiteService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.util.FileFilterMode.Client;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.json.JSONObject;
|
||||
@@ -194,6 +196,21 @@ public class ActivityServiceImpl implements ActivityService, InitializingBean
|
||||
activityPostService.postActivity(activityType, siteId, appTool, nodeRef, name, typeQName, parentNodeRef);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void postActivity(String activityType, String siteId, String appTool, String jsonActivityData, Client client)
|
||||
{
|
||||
// delegate
|
||||
activityPostService.postActivity(activityType, siteId, appTool, jsonActivityData, client);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postActivity(String activityType, String siteId, String appTool, String jsonActivityData, Client client, FileInfo contentNodeInfo)
|
||||
{
|
||||
// delegate
|
||||
activityPostService.postActivity(activityType, siteId, appTool, jsonActivityData, client, contentNodeInfo);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.activities.ActivityService#getUserFeedEntries(java.lang.String, java.lang.String, java.lang.String)
|
||||
*/
|
||||
|
@@ -26,6 +26,7 @@ import org.alfresco.service.cmr.activities.ActivityService;
|
||||
import org.alfresco.service.cmr.activities.FeedControl;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.util.FileFilterMode.Client;
|
||||
import org.mozilla.javascript.Context;
|
||||
import org.mozilla.javascript.Scriptable;
|
||||
|
||||
@@ -72,7 +73,7 @@ public final class Activity extends BaseScopableProcessorExtension
|
||||
*/
|
||||
public void postActivity(String activityType, String siteId, String appTool, String jsonActivityData)
|
||||
{
|
||||
activityService.postActivity(activityType, siteId, appTool, jsonActivityData);
|
||||
activityService.postActivity(activityType, siteId, appTool, jsonActivityData, Client.webclient);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -20,7 +20,6 @@ package org.alfresco.repo.quickshare;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -63,8 +62,8 @@ import org.alfresco.service.cmr.thumbnail.ThumbnailService;
|
||||
import org.alfresco.service.namespace.NamespaceService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.util.EqualsHelper;
|
||||
import org.alfresco.util.Pair;
|
||||
import org.alfresco.util.FileFilterMode.Client;
|
||||
import org.alfresco.util.Pair;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
@@ -250,9 +249,9 @@ public class QuickShareServiceImpl implements QuickShareService, NodeServicePoli
|
||||
@Override
|
||||
public Event prepareEvent(String user, String networkId, String transactionId)
|
||||
{
|
||||
return new ActivityEvent("quickshare", transactionId, networkId, new Date().getTime(),
|
||||
user, nodeRef.getId(),
|
||||
null, typeQName.toString(), Client.webclient, sb.toString());
|
||||
return new ActivityEvent("quickshare", transactionId, networkId, user, nodeRef.getId(),
|
||||
null, typeQName.toString(), Client.webclient, sb.toString(),
|
||||
null, null, 0l, null);
|
||||
}
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user