mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-07 18:25:23 +00:00
28236: ALF-8810: Removed trailing space from discussion.discussion_for Italian translation 28241: Incremented version revision for 3.4.4 28284: ALF-835 - WCM/AVM: copy (empty) folder into itself 28285: ALF-6863: More than one cifs device breaks the web UI (explorer) 28290: ALF-8840: user-*.atomentry.ftl 28291: ALF-6863: Continuation of fix by Arseny 28336: ALF-8768: Fixed typo in comment on wcm-bootstrap-context.xml 28363: Merged DEV to V3.4-BUG-FIX 28262: ALF-8847: WCM: OrphanReaper contention throws error after 39 retries. Checkin Comment: Use JobLockService to make sure that only one OrphanReaper job is working. Generate list of nodes that must be processed in OrphanReaper.doBatch() transaction. 28386: ALF-9100: Merged PATCHES/V3.4.1 to V3.4-BUG-FIX 28249: ALF-8946: Avoid one full table scan per batch in full reindex - Now each batch scans a single time sample, dynamically adjusted based on the number of transactions in the previous sample, always aiming for 1000 transactions per sample. 28394: Fixed ALF-9090: NPE during inter-cluster subsystem messaging - Bean ID is a List<String> and might not be recognized on receiving machine - Log warning when bean ID is not available (unsymmetrical configuration, perhaps?) 28396: Merged DEV to V3.4-BUG-FIX 28384: ALF-6150: Initial state lost when non-versionable document is saved for the first time Creation of new version of document before writing its content was added to - AbstractAlfrescoMethodHandler->putDocument (this method is used by Office 2003, 2007) - VtiIfHeaderAction->doPut (this method is used by Office 2007 and 2010 on Windows 7) Creation of new version was added twice to AbstractAlfrescoMethodHandler to avoid affecting initial version when transaction is committed. 28432: Merged DEV to V3.4-BUG-FIX 28431: ALF-8530: Pressing the info icon creates an unrecorded file in the ContentStore Use ContentService.getTempWriter() in BaseContentNode$TemplateContentData.getContentAsText() method. 28435: Merged DEV/TEMPORARY to V3.4-BUG-FIX 28428: ALF-9015: cm:modifier not updated when document is updated via CIFS In ContentDiskDriver.closeFile() added ContentModel.PROP_MODIFIER property update. 28436: ALF-8550: Number of http requests (currentThreadsBusy) increases when session times out during creation of webform - Corrected use of read and write locks 28465: Fix for ALF-8023 Share preview doesn't work if... fixed as outlined by Dmitry. 28478: Merged BRANCHES/DEV/ALAN/AUDIT to BRANCHES/DEV/V3.4-BUG-FIX: 28062-28477 (28062,28063,28080,28081,28302,28303,28334,28340,28464,28469,28477) ALF-8438 Need higher level audit of user actions git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28481 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
195 lines
5.3 KiB
Java
195 lines
5.3 KiB
Java
/*
|
|
* Copyright (C) 2005-2011 Alfresco Software Limited.
|
|
*
|
|
* This file is part of Alfresco
|
|
*
|
|
* Alfresco is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* Alfresco is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
package org.alfresco.service.cmr.subscriptions;
|
|
|
|
import org.alfresco.query.PagingRequest;
|
|
import org.alfresco.service.Auditable;
|
|
import org.alfresco.service.NotAuditable;
|
|
import org.alfresco.service.cmr.repository.NodeRef;
|
|
|
|
/**
|
|
* Subscription Service.
|
|
*
|
|
* @author Florian Mueller
|
|
* @since 4.0
|
|
*/
|
|
public interface SubscriptionService
|
|
{
|
|
// --- subscription ---
|
|
|
|
/**
|
|
* Returns the nodes a user has subscribed to.
|
|
*
|
|
* @param userId
|
|
* the id of the user
|
|
* @param type
|
|
* the type of the nodes
|
|
* @param pagingRequest
|
|
* paging details
|
|
*
|
|
* @throws PrivateSubscriptionListException
|
|
* if the subscription list is private and the calling user is
|
|
* not allowed to see it
|
|
*/
|
|
@NotAuditable
|
|
PagingSubscriptionResults getSubscriptions(String userId, SubscriptionItemTypeEnum type, PagingRequest pagingRequest);
|
|
|
|
/**
|
|
* Returns how many nodes the given user has subscribed to.
|
|
*
|
|
* @param userId
|
|
* the id of the user
|
|
* @param type
|
|
* the type of the nodes
|
|
*/
|
|
@NotAuditable
|
|
int getSubscriptionCount(String userId, SubscriptionItemTypeEnum type);
|
|
|
|
/**
|
|
* Subscribes to a node.
|
|
*
|
|
* @param userId
|
|
* id of the user
|
|
* @param node
|
|
* the node
|
|
*/
|
|
@Auditable(parameters = { "userId", "node" })
|
|
void subscribe(String userId, NodeRef node);
|
|
|
|
/**
|
|
* Unsubscribes from a node.
|
|
*
|
|
* @param userId
|
|
* id of the user
|
|
* @param node
|
|
* the node
|
|
*/
|
|
@Auditable(parameters = { "userId", "node" })
|
|
void unsubscribe(String userId, NodeRef node);
|
|
|
|
/**
|
|
* Returns if the user has subscribed to the given node.
|
|
*
|
|
* @param userId
|
|
* id of the user
|
|
* @param node
|
|
* the node
|
|
*/
|
|
@NotAuditable
|
|
boolean hasSubscribed(String userId, NodeRef node);
|
|
|
|
// --- follow ---
|
|
|
|
/**
|
|
* Returns a list of users that the given user follows.
|
|
*
|
|
* @param userId
|
|
* id of the user
|
|
* @param pagingRequest
|
|
* paging details
|
|
* @throws PrivateSubscriptionListException
|
|
* if the subscription list is private and the calling user is
|
|
* not allowed to see it
|
|
*/
|
|
@NotAuditable
|
|
PagingFollowingResults getFollowing(String userId, PagingRequest pagingRequest);
|
|
|
|
/**
|
|
* Returns a list of users that follow the given user.
|
|
*
|
|
* @param userId
|
|
* id of the user
|
|
* @param pagingRequest
|
|
* paging details
|
|
*/
|
|
@NotAuditable
|
|
PagingFollowingResults getFollowers(String userId, PagingRequest pagingRequest);
|
|
|
|
/**
|
|
* Returns how many users the given user follows.
|
|
*
|
|
* @param userId
|
|
* the id of the user
|
|
* @param type
|
|
* the type of the nodes
|
|
*/
|
|
@NotAuditable
|
|
int getFollowingCount(String userId);
|
|
|
|
/**
|
|
* Returns how many users follow the given user.
|
|
*
|
|
* @param userId
|
|
* the id of the user
|
|
* @param type
|
|
* the type of the nodes
|
|
*/
|
|
@NotAuditable
|
|
int getFollowersCount(String userId);
|
|
|
|
/**
|
|
* Follows another
|
|
*
|
|
* @param userId
|
|
* the id of the user
|
|
* @param userToFollow
|
|
* the id of the user to follow
|
|
*/
|
|
@Auditable(parameters = { "userId", "userToFollow" })
|
|
void follow(String userId, String userToFollow);
|
|
|
|
@Auditable(parameters = { "userId", "userToUnfollow" })
|
|
void unfollow(String userId, String userToUnfollow);
|
|
|
|
/**
|
|
* Returns if the user follows to the given other user.
|
|
*
|
|
* @param userId
|
|
* id of the user
|
|
* @param userToFollow
|
|
* the id of the other user
|
|
*/
|
|
@NotAuditable
|
|
boolean follows(String userId, String userToFollow);
|
|
|
|
// --- privacy settings ---
|
|
|
|
/**
|
|
* Sets or unsets the subscription list of the given user to private.
|
|
*
|
|
* @param userId
|
|
* the id of the user
|
|
* @param isPrivate
|
|
* <code>true</code> - set list private,
|
|
* <code>false<code> - set list public
|
|
*
|
|
*/
|
|
@Auditable(parameters = { "userId", "isPrivate" })
|
|
void setSubscriptionListPrivate(String userId, boolean isPrivate);
|
|
|
|
/**
|
|
* Returns if the subscription list of the given user is set to private.
|
|
*
|
|
* @param userId
|
|
* the id of the user
|
|
*/
|
|
@NotAuditable
|
|
boolean isSubscriptionListPrivate(String userId);
|
|
}
|