mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged DEV/BELARUS/V3.2-2009_10_05 to HEAD
16926 : ETHREEOH-3042 Imap access error git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16970 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -25,6 +25,7 @@
|
|||||||
package org.alfresco.repo.imap;
|
package org.alfresco.repo.imap;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@@ -44,10 +45,13 @@ import org.alfresco.model.ImapModel;
|
|||||||
import org.alfresco.repo.imap.AlfrescoImapConst.ImapViewMode;
|
import org.alfresco.repo.imap.AlfrescoImapConst.ImapViewMode;
|
||||||
import org.alfresco.repo.imap.config.ImapConfigMountPointsBean;
|
import org.alfresco.repo.imap.config.ImapConfigMountPointsBean;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||||
|
import org.alfresco.repo.site.SiteServiceException;
|
||||||
|
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||||
import org.alfresco.service.ServiceRegistry;
|
import org.alfresco.service.ServiceRegistry;
|
||||||
import org.alfresco.service.cmr.model.FileFolderService;
|
import org.alfresco.service.cmr.model.FileFolderService;
|
||||||
import org.alfresco.service.cmr.model.FileInfo;
|
import org.alfresco.service.cmr.model.FileInfo;
|
||||||
import org.alfresco.service.cmr.preference.PreferenceService;
|
import org.alfresco.service.cmr.preference.PreferenceService;
|
||||||
|
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
import org.alfresco.service.cmr.search.SearchService;
|
import org.alfresco.service.cmr.search.SearchService;
|
||||||
@@ -608,7 +612,36 @@ public class ImapServiceImpl implements ImapService
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Remove folders from Sites
|
// Remove folders from Sites
|
||||||
List<SiteInfo> sites = serviceRegistry.getSiteService().listSites(getCurrentUser());
|
List<SiteInfo> sites = serviceRegistry.getTransactionService().getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<List<SiteInfo>>()
|
||||||
|
{
|
||||||
|
public List<SiteInfo> execute() throws Exception
|
||||||
|
{
|
||||||
|
List<SiteInfo> res = new ArrayList<SiteInfo>();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
res = serviceRegistry.getSiteService().listSites(getCurrentUser());
|
||||||
|
}
|
||||||
|
catch (SiteServiceException e)
|
||||||
|
{
|
||||||
|
// Do nothing. Root sites folder was not created.
|
||||||
|
if (logger.isWarnEnabled())
|
||||||
|
{
|
||||||
|
logger.warn("Root sites folder was not created.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (InvalidNodeRefException e)
|
||||||
|
{
|
||||||
|
// Do nothing. Root sites folder was deleted.
|
||||||
|
if (logger.isWarnEnabled())
|
||||||
|
{
|
||||||
|
logger.warn("Root sites folder was deleted.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}, false, true);
|
||||||
for (SiteInfo siteInfo : sites)
|
for (SiteInfo siteInfo : sites)
|
||||||
{
|
{
|
||||||
List<FileInfo> siteChilds = fileFolderService.search(siteInfo.getNodeRef(), namePattern, false, true, true);
|
List<FileInfo> siteChilds = fileFolderService.search(siteInfo.getNodeRef(), namePattern, false, true, true);
|
||||||
@@ -1280,12 +1313,44 @@ public class ImapServiceImpl implements ImapService
|
|||||||
* @param userName name of user
|
* @param userName name of user
|
||||||
* @return List of nonFavourite sites.
|
* @return List of nonFavourite sites.
|
||||||
*/
|
*/
|
||||||
private List<SiteInfo> getNonFavouriteSites(String userName)
|
private List<SiteInfo> getNonFavouriteSites(final String userName)
|
||||||
{
|
{
|
||||||
List<SiteInfo> nonFavSites = new LinkedList<SiteInfo>();
|
List<SiteInfo> nonFavSites = new LinkedList<SiteInfo>();
|
||||||
|
|
||||||
PreferenceService preferenceService = (PreferenceService) serviceRegistry.getService(ServiceRegistry.PREFERENCE_SERVICE);
|
PreferenceService preferenceService = (PreferenceService) serviceRegistry.getService(ServiceRegistry.PREFERENCE_SERVICE);
|
||||||
Map<String, Serializable> prefs = preferenceService.getPreferences(userName, AlfrescoImapConst.PREF_IMAP_FAVOURITE_SITES);
|
Map<String, Serializable> prefs = preferenceService.getPreferences(userName, AlfrescoImapConst.PREF_IMAP_FAVOURITE_SITES);
|
||||||
List<SiteInfo> sites = serviceRegistry.getSiteService().listSites(userName);
|
|
||||||
|
List<SiteInfo> sites = serviceRegistry.getTransactionService().getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<List<SiteInfo>>()
|
||||||
|
{
|
||||||
|
public List<SiteInfo> execute() throws Exception
|
||||||
|
{
|
||||||
|
List<SiteInfo> res = new ArrayList<SiteInfo>();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
res = serviceRegistry.getSiteService().listSites(userName);
|
||||||
|
}
|
||||||
|
catch (SiteServiceException e)
|
||||||
|
{
|
||||||
|
//Do nothing. Root sites folder was not created.
|
||||||
|
if (logger.isDebugEnabled())
|
||||||
|
{
|
||||||
|
logger.warn("Root sites folder was not created.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (InvalidNodeRefException e)
|
||||||
|
{
|
||||||
|
//Do nothing. Root sites folder was deleted.
|
||||||
|
if (logger.isDebugEnabled())
|
||||||
|
{
|
||||||
|
logger.warn("Root sites folder was deleted.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}, false, true);
|
||||||
|
|
||||||
for (SiteInfo siteInfo : sites)
|
for (SiteInfo siteInfo : sites)
|
||||||
{
|
{
|
||||||
String key = AlfrescoImapConst.PREF_IMAP_FAVOURITE_SITES + "." + siteInfo.getShortName();
|
String key = AlfrescoImapConst.PREF_IMAP_FAVOURITE_SITES + "." + siteInfo.getShortName();
|
||||||
|
Reference in New Issue
Block a user