mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
User status changes now generate activities
Activities Dashlet: - added "I'm following" filter - prepared activities filter (not working yet) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28589 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -21,6 +21,7 @@ package org.alfresco.repo.activities;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.repo.activities.feed.cleanup.FeedCleaner;
|
||||
@@ -167,19 +168,27 @@ public class ActivityServiceImpl implements ActivityService, InitializingBean
|
||||
*/
|
||||
public List<String> getUserFeedEntries(String feedUserId, String format, String siteId)
|
||||
{
|
||||
return getUserFeedEntries(feedUserId, format, siteId, false, false);
|
||||
return getUserFeedEntries(feedUserId, format, siteId, false, false, null, null);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.activities.ActivityService#getUserFeedEntries(java.lang.String, java.lang.String, java.lang.String, boolean, boolean)
|
||||
*/
|
||||
public List<String> getUserFeedEntries(String feedUserId, String format, String siteId, boolean excludeThisUser, boolean excludeOtherUsers)
|
||||
{
|
||||
return getUserFeedEntries(feedUserId, format, siteId,excludeThisUser, excludeOtherUsers, null, null);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.activities.ActivityService#getUserFeedEntries(java.lang.String, java.lang.String, java.lang.String, boolean, boolean, java.util.Set<String>, java.util.Set<String>)
|
||||
*/
|
||||
public List<String> getUserFeedEntries(String feedUserId, String format, String siteId, boolean excludeThisUser, boolean excludeOtherUsers, Set<String> userFilter, Set<String> actvityFilter)
|
||||
{
|
||||
List<String> activityFeedEntries = new ArrayList<String>();
|
||||
|
||||
try
|
||||
{
|
||||
List<ActivityFeedEntity> activityFeeds = getUserFeedEntries(feedUserId, format, siteId, excludeThisUser, excludeOtherUsers, -1);
|
||||
List<ActivityFeedEntity> activityFeeds = getUserFeedEntries(feedUserId, format, siteId, excludeThisUser, excludeOtherUsers, userFilter, actvityFilter, -1);
|
||||
|
||||
if (activityFeeds != null)
|
||||
{
|
||||
@@ -200,6 +209,11 @@ public class ActivityServiceImpl implements ActivityService, InitializingBean
|
||||
}
|
||||
|
||||
public List<ActivityFeedEntity> getUserFeedEntries(String feedUserId, String format, String siteId, boolean excludeThisUser, boolean excludeOtherUsers, long minFeedId)
|
||||
{
|
||||
return getUserFeedEntries(feedUserId, format, siteId, excludeThisUser, excludeOtherUsers, null, null, minFeedId);
|
||||
}
|
||||
|
||||
public List<ActivityFeedEntity> getUserFeedEntries(String feedUserId, String format, String siteId, boolean excludeThisUser, boolean excludeOtherUsers, Set<String> userFilter, Set<String> actvityFilter, long minFeedId)
|
||||
{
|
||||
// NOTE: siteId is optional
|
||||
ParameterCheck.mandatoryString("feedUserId", feedUserId);
|
||||
@@ -232,6 +246,14 @@ public class ActivityServiceImpl implements ActivityService, InitializingBean
|
||||
|
||||
for (ActivityFeedEntity activityFeed : activityFeeds)
|
||||
{
|
||||
if (actvityFilter != null && !actvityFilter.contains(activityFeed.getActivityType())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (userFilter != null && !userFilter.contains(activityFeed.getPostUserId())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
activityFeed.setSiteNetwork(tenantService.getBaseName(activityFeed.getSiteNetwork()));
|
||||
result.add(activityFeed);
|
||||
}
|
||||
|
@@ -130,17 +130,17 @@ public class ActivityServiceImplTest extends BaseSpringTest
|
||||
assertNotNull(userFeedEntries);
|
||||
assertTrue(userFeedEntries.isEmpty());
|
||||
|
||||
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "a format", "some site", true, false);
|
||||
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "a format", "some site", true, false, null, null);
|
||||
|
||||
assertNotNull(userFeedEntries);
|
||||
assertTrue(userFeedEntries.isEmpty());
|
||||
|
||||
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "a format", "some site", false, true);
|
||||
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "a format", "some site", false, true, null, null);
|
||||
|
||||
assertNotNull(userFeedEntries);
|
||||
assertTrue(userFeedEntries.isEmpty());
|
||||
|
||||
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "a format", "some site", true, true);
|
||||
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "a format", "some site", true, true, null, null);
|
||||
|
||||
assertNotNull(userFeedEntries);
|
||||
assertTrue(userFeedEntries.isEmpty());
|
||||
|
@@ -302,7 +302,7 @@ public class SiteActivityTest extends TestCase
|
||||
{
|
||||
userId = AuthenticationUtil.getFullyAuthenticatedUser();
|
||||
}
|
||||
assertEquals(expectedCount, activityService.getUserFeedEntries(userId, "json", siteId, excludeThisUser, excludeOtherUsers).size());
|
||||
assertEquals(expectedCount, activityService.getUserFeedEntries(userId, "json", siteId, excludeThisUser, excludeOtherUsers, null, null).size());
|
||||
}
|
||||
|
||||
public void testUserFeedControls() throws Exception
|
||||
|
@@ -19,9 +19,7 @@
|
||||
package org.alfresco.repo.activities.feed;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -397,7 +395,7 @@ public class FeedNotifierImpl implements FeedNotifier
|
||||
|
||||
|
||||
// own + others (note: template can be changed to filter out user's own activities if needed)
|
||||
List<ActivityFeedEntity> feedEntries = activityService.getUserFeedEntries(feedUserId, FeedTaskProcessor.FEED_FORMAT_JSON, null, false, false, emailFeedDBID);
|
||||
List<ActivityFeedEntity> feedEntries = activityService.getUserFeedEntries(feedUserId, FeedTaskProcessor.FEED_FORMAT_JSON, null, false, false, null, null, emailFeedDBID);
|
||||
|
||||
if (feedEntries.size() > 0)
|
||||
{
|
||||
|
@@ -264,14 +264,9 @@ public abstract class FeedTaskProcessor
|
||||
followers.put(activityPost.getUserId(), followerUsers);
|
||||
}
|
||||
recipients.addAll(followerUsers);
|
||||
|
||||
if(recipients.size() == 0) {
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("No recipients for activity post " + activityPost.getId() + ".");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Add the originator to recipients
|
||||
recipients.add(activityPost.getUserId());
|
||||
|
||||
try
|
||||
{
|
||||
|
@@ -75,7 +75,8 @@ public class SubscriptionsDAOImpl extends AbstractSubscriptionsDAO
|
||||
map.put("userNodeId", userPair.getFirst());
|
||||
map.put("false", Boolean.FALSE);
|
||||
|
||||
int maxItems = (pagingRequest.getMaxItems() < 0 ? Integer.MAX_VALUE - 1 : pagingRequest.getMaxItems());
|
||||
int maxItems = (pagingRequest.getMaxItems() < 0 || pagingRequest.getMaxItems() > Integer.MAX_VALUE - 1 ? Integer.MAX_VALUE - 1
|
||||
: pagingRequest.getMaxItems() + 1);
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<SubscriptionNodeEntity> nodeList = (List<SubscriptionNodeEntity>) template.selectList(
|
||||
@@ -219,7 +220,8 @@ public class SubscriptionsDAOImpl extends AbstractSubscriptionsDAO
|
||||
map.put("userNodeId", userPair.getFirst());
|
||||
map.put("false", Boolean.FALSE);
|
||||
|
||||
int maxItems = (pagingRequest.getMaxItems() < 0 ? Integer.MAX_VALUE - 1 : pagingRequest.getMaxItems() + 1);
|
||||
int maxItems = (pagingRequest.getMaxItems() < 0 || pagingRequest.getMaxItems() > Integer.MAX_VALUE - 1 ? Integer.MAX_VALUE - 1
|
||||
: pagingRequest.getMaxItems() + 1);
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<String> userList = (List<String>) template.selectList("alfresco.subscriptions.select_Following", map,
|
||||
@@ -256,7 +258,8 @@ public class SubscriptionsDAOImpl extends AbstractSubscriptionsDAO
|
||||
map.put("userNodeId", userPair.getFirst());
|
||||
map.put("false", Boolean.FALSE);
|
||||
|
||||
int maxItems = (pagingRequest.getMaxItems() < 0 ? Integer.MAX_VALUE - 1 : pagingRequest.getMaxItems() + 1);
|
||||
int maxItems = (pagingRequest.getMaxItems() < 0 || pagingRequest.getMaxItems() > Integer.MAX_VALUE - 1 ? Integer.MAX_VALUE - 1
|
||||
: pagingRequest.getMaxItems() + 1);
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<String> userList = (List<String>) template.selectList("alfresco.subscriptions.select_Followers", map,
|
||||
|
@@ -19,10 +19,10 @@
|
||||
package org.alfresco.service.cmr.activities;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.repo.domain.activities.ActivityFeedEntity;
|
||||
import org.alfresco.service.NotAuditable;
|
||||
import org.alfresco.service.PublicService;
|
||||
|
||||
|
||||
/**
|
||||
@@ -67,6 +67,30 @@ public interface ActivityService extends ActivityPostService
|
||||
*/
|
||||
@NotAuditable
|
||||
public List<String> getUserFeedEntries(String userId, String format, String siteId, boolean excludeThisUser, boolean excludeOtherUsers);
|
||||
|
||||
|
||||
/**
|
||||
* Retrieve user feed with optional site filter and optional user filters
|
||||
*
|
||||
* Will return activities for users across all sites, or optionally for users for specified site.
|
||||
*
|
||||
* User filters are:
|
||||
* - all user activities (excludeThisUser = false, excludeOtherUsers = false)
|
||||
* - other user activities (excludeThisUser = true, excludeOtherUsers = false)
|
||||
* - my user activities (excludeThisUser = false, excludeOtherUsers = true)
|
||||
* note: if both excludes are true then no activities will be returned.
|
||||
*
|
||||
* @param userId - required
|
||||
* @param format - required
|
||||
* @param siteId - optional, if set then will filter by given siteId else return all sites
|
||||
* @param excludeThisUser - if TRUE then will exclude activities for this user (hence returning other users only)
|
||||
* @param excludeOthersUsers - if TRUE then will exclude activities for other users (hence returning this user only)
|
||||
* @param userFilter - if not NULL then will only return activities of users in this set
|
||||
* @param actvityFilter - if not NULL then will only return activities that are in this set
|
||||
* @return list of JSON feed entries
|
||||
*/
|
||||
@NotAuditable
|
||||
public List<String> getUserFeedEntries(String userId, String format, String siteId, boolean excludeThisUser, boolean excludeOtherUsers, Set<String> userFilter, Set<String> actvityFilter);
|
||||
|
||||
/**
|
||||
* Retrieve user feed with optional site filter and optional user filters and optional min feed DB id
|
||||
@@ -84,12 +108,38 @@ public interface ActivityService extends ActivityPostService
|
||||
* @param siteId - optional, if set then will filter by given siteId else return all sites
|
||||
* @param excludeThisUser - if TRUE then will exclude activities for this user (hence returning other users only)
|
||||
* @param excludeOthersUsers - if TRUE then will exclude activities for other users (hence returning this user only)
|
||||
* @param onlyFollowing - if TRUE then will only return activities of users this user follows
|
||||
* @param minFeedId - inclusive from min feed DB id, if -1 then return all available
|
||||
* @return list of JSON feed entries
|
||||
*/
|
||||
@NotAuditable
|
||||
public List<ActivityFeedEntity> getUserFeedEntries(String feedUserId, String format, String siteId, boolean excludeThisUser, boolean excludeOtherUsers, long minFeedId);
|
||||
|
||||
/**
|
||||
* Retrieve user feed with optional site filter and optional user filters and optional min feed DB id
|
||||
*
|
||||
* Will return activities for users across all sites, or optionally for users for specified site.
|
||||
*
|
||||
* User filters are:
|
||||
* - all user activities (excludeThisUser = false, excludeOtherUsers = false)
|
||||
* - other user activities (excludeThisUser = true, excludeOtherUsers = false)
|
||||
* - my user activities (excludeThisUser = false, excludeOtherUsers = true)
|
||||
* note: if both excludes are true then no activities will be returned.
|
||||
*
|
||||
* @param userId - required
|
||||
* @param format - required
|
||||
* @param siteId - optional, if set then will filter by given siteId else return all sites
|
||||
* @param excludeThisUser - if TRUE then will exclude activities for this user (hence returning other users only)
|
||||
* @param excludeOthersUsers - if TRUE then will exclude activities for other users (hence returning this user only)
|
||||
* @param onlyFollowing - if TRUE then will only return activities of users this user follows
|
||||
* @param userFilter - if not NULL then will only return activities of users in this set
|
||||
* @param actvityFilter - if not NULL then will only return activities that are in this set
|
||||
* @param minFeedId - inclusive from min feed DB id, if -1 then return all available
|
||||
* @return list of JSON feed entries
|
||||
*/
|
||||
@NotAuditable
|
||||
public List<ActivityFeedEntity> getUserFeedEntries(String feedUserId, String format, String siteId, boolean excludeThisUser, boolean excludeOtherUsers, Set<String> userFilter, Set<String> actvityFilter, long minFeedId);
|
||||
|
||||
/**
|
||||
* Retrieve site feed
|
||||
*
|
||||
|
Reference in New Issue
Block a user