From 22782982ba77a8ec6c6e173a2ef0991bc4b50500 Mon Sep 17 00:00:00 2001 From: pavelbannov Date: Sun, 3 Oct 2021 23:54:37 +0300 Subject: [PATCH] fix Bug 52860 --- .../ASC.Files/Core/Core/Dao/Interfaces/IFileDao.cs | 2 +- .../ASC.Files/Core/Core/Dao/TeamlabDao/FileDao.cs | 4 ++-- .../ASC.Files/Core/Core/Thirdparty/Box/BoxFileDao.cs | 2 +- .../Core/Core/Thirdparty/Dropbox/DropboxFileDao.cs | 2 +- .../Thirdparty/GoogleDrive/GoogleDriveFileDao.cs | 2 +- .../Core/Core/Thirdparty/OneDrive/OneDriveFileDao.cs | 2 +- .../Core/Thirdparty/ProviderDao/ProviderFileDao.cs | 2 +- .../Core/Thirdparty/SharePoint/SharePointFileDao.cs | 2 +- .../Core/Core/Thirdparty/Sharpbox/SharpBoxFileDao.cs | 2 +- products/ASC.Files/Core/Utils/EntryManager.cs | 12 ++++++------ 10 files changed, 16 insertions(+), 16 deletions(-) diff --git a/products/ASC.Files/Core/Core/Dao/Interfaces/IFileDao.cs b/products/ASC.Files/Core/Core/Dao/Interfaces/IFileDao.cs index b5c9c99bcb..877ac4f98c 100644 --- a/products/ASC.Files/Core/Core/Dao/Interfaces/IFileDao.cs +++ b/products/ASC.Files/Core/Core/Dao/Interfaces/IFileDao.cs @@ -100,7 +100,7 @@ namespace ASC.Files.Core /// /// /// - List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent); + List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent, bool checkShared = false); /// /// diff --git a/products/ASC.Files/Core/Core/Dao/TeamlabDao/FileDao.cs b/products/ASC.Files/Core/Core/Dao/TeamlabDao/FileDao.cs index 146c8fbab2..c19d1679f2 100644 --- a/products/ASC.Files/Core/Core/Dao/TeamlabDao/FileDao.cs +++ b/products/ASC.Files/Core/Core/Dao/TeamlabDao/FileDao.cs @@ -187,7 +187,7 @@ namespace ASC.Files.Core.Data return FromQueryWithShared(query).Select(ToFile).ToList(); } - public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent) + public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent, bool checkShared = false) { if (fileIds == null || !fileIds.Any() || filterType == FilterType.FoldersOnly) return new List>(); @@ -238,7 +238,7 @@ namespace ASC.Files.Core.Data break; } - return FromQuery(query).Select(ToFile).ToList(); + return (checkShared ? FromQueryWithShared(query) : FromQuery(query)).Select(ToFile).ToList(); } diff --git a/products/ASC.Files/Core/Core/Thirdparty/Box/BoxFileDao.cs b/products/ASC.Files/Core/Core/Thirdparty/Box/BoxFileDao.cs index 97ac2c6515..dfd6f18af0 100644 --- a/products/ASC.Files/Core/Core/Thirdparty/Box/BoxFileDao.cs +++ b/products/ASC.Files/Core/Core/Thirdparty/Box/BoxFileDao.cs @@ -115,7 +115,7 @@ namespace ASC.Files.Thirdparty.Box return fileIds.Select(GetBoxFile).Select(ToFile).ToList(); } - public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent) + public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent, bool checkShared = false) { if (fileIds == null || !fileIds.Any() || filterType == FilterType.FoldersOnly) return new List>(); diff --git a/products/ASC.Files/Core/Core/Thirdparty/Dropbox/DropboxFileDao.cs b/products/ASC.Files/Core/Core/Thirdparty/Dropbox/DropboxFileDao.cs index a43e1afddd..d129bb3941 100644 --- a/products/ASC.Files/Core/Core/Thirdparty/Dropbox/DropboxFileDao.cs +++ b/products/ASC.Files/Core/Core/Thirdparty/Dropbox/DropboxFileDao.cs @@ -119,7 +119,7 @@ namespace ASC.Files.Thirdparty.Dropbox return fileIds.Select(GetDropboxFile).Select(ToFile).ToList(); } - public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent) + public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent, bool checkShared = false) { if (fileIds == null || !fileIds.Any() || filterType == FilterType.FoldersOnly) return new List>(); diff --git a/products/ASC.Files/Core/Core/Thirdparty/GoogleDrive/GoogleDriveFileDao.cs b/products/ASC.Files/Core/Core/Thirdparty/GoogleDrive/GoogleDriveFileDao.cs index 2744576d57..715c0c8856 100644 --- a/products/ASC.Files/Core/Core/Thirdparty/GoogleDrive/GoogleDriveFileDao.cs +++ b/products/ASC.Files/Core/Core/Thirdparty/GoogleDrive/GoogleDriveFileDao.cs @@ -116,7 +116,7 @@ namespace ASC.Files.Thirdparty.GoogleDrive return fileIds.Select(GetDriveEntry).Select(ToFile).ToList(); } - public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent) + public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent, bool checkShared = false) { if (fileIds == null || !fileIds.Any() || filterType == FilterType.FoldersOnly) return new List>(); diff --git a/products/ASC.Files/Core/Core/Thirdparty/OneDrive/OneDriveFileDao.cs b/products/ASC.Files/Core/Core/Thirdparty/OneDrive/OneDriveFileDao.cs index 9a1188e806..0c5f3b9ed3 100644 --- a/products/ASC.Files/Core/Core/Thirdparty/OneDrive/OneDriveFileDao.cs +++ b/products/ASC.Files/Core/Core/Thirdparty/OneDrive/OneDriveFileDao.cs @@ -115,7 +115,7 @@ namespace ASC.Files.Thirdparty.OneDrive return fileIds.Select(GetOneDriveItem).Select(ToFile).ToList(); } - public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent) + public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent, bool checkShared = false) { if (fileIds == null || !fileIds.Any() || filterType == FilterType.FoldersOnly) return new List>(); diff --git a/products/ASC.Files/Core/Core/Thirdparty/ProviderDao/ProviderFileDao.cs b/products/ASC.Files/Core/Core/Thirdparty/ProviderDao/ProviderFileDao.cs index f5aecfe6cb..fb81dd414d 100644 --- a/products/ASC.Files/Core/Core/Thirdparty/ProviderDao/ProviderFileDao.cs +++ b/products/ASC.Files/Core/Core/Thirdparty/ProviderDao/ProviderFileDao.cs @@ -148,7 +148,7 @@ namespace ASC.Files.Thirdparty.ProviderDao return result.ToList(); } - public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent) + public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent, bool checkShared = false) { var result = Enumerable.Empty>(); diff --git a/products/ASC.Files/Core/Core/Thirdparty/SharePoint/SharePointFileDao.cs b/products/ASC.Files/Core/Core/Thirdparty/SharePoint/SharePointFileDao.cs index 76fb9373d9..393e6f4a3c 100644 --- a/products/ASC.Files/Core/Core/Thirdparty/SharePoint/SharePointFileDao.cs +++ b/products/ASC.Files/Core/Core/Thirdparty/SharePoint/SharePointFileDao.cs @@ -107,7 +107,7 @@ namespace ASC.Files.Thirdparty.SharePoint return fileIds.Select(fileId => ProviderInfo.ToFile(ProviderInfo.GetFileById(fileId))).ToList(); } - public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent) + public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent, bool checkShared = false) { if (fileIds == null || !fileIds.Any() || filterType == FilterType.FoldersOnly) return new List>(); diff --git a/products/ASC.Files/Core/Core/Thirdparty/Sharpbox/SharpBoxFileDao.cs b/products/ASC.Files/Core/Core/Thirdparty/Sharpbox/SharpBoxFileDao.cs index 335c6fd638..887438298a 100644 --- a/products/ASC.Files/Core/Core/Thirdparty/Sharpbox/SharpBoxFileDao.cs +++ b/products/ASC.Files/Core/Core/Thirdparty/Sharpbox/SharpBoxFileDao.cs @@ -115,7 +115,7 @@ namespace ASC.Files.Thirdparty.Sharpbox return fileIds.Select(fileId => ToFile(GetFileById(fileId))).ToList(); } - public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent) + public List> GetFilesFiltered(IEnumerable fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent, bool checkShared = false) { if (fileIds == null || !fileIds.Any() || filterType == FilterType.FoldersOnly) return new List>(); diff --git a/products/ASC.Files/Core/Utils/EntryManager.cs b/products/ASC.Files/Core/Utils/EntryManager.cs index 1bb5928075..cd5da74d8d 100644 --- a/products/ASC.Files/Core/Utils/EntryManager.cs +++ b/products/ASC.Files/Core/Utils/EntryManager.cs @@ -239,8 +239,8 @@ namespace ASC.Web.Files.Utils [Scope] public class EntryManager { - private const string UPDATE_LIST = "filesUpdateList"; - + private const string UPDATE_LIST = "filesUpdateList"; + private ICache Cache { get; set; } private FileTrackerHelper FileTracker { get; } private EntryStatusManager EntryStatusManager { get; } @@ -291,7 +291,7 @@ namespace ASC.Web.Files.Utils BreadCrumbsManager breadCrumbsManager, TenantManager tenantManager, SettingsManager settingsManager, - IServiceProvider serviceProvider, + IServiceProvider serviceProvider, ICache cache, FileTrackerHelper fileTracker, EntryStatusManager entryStatusManager) @@ -464,7 +464,7 @@ namespace ASC.Web.Files.Utils entries = entries.Concat(folders); entries = entries.Concat(files); - + CalculateTotal(); } else if (parent.FolderType == FolderType.Templates) @@ -616,7 +616,7 @@ namespace ASC.Web.Files.Utils var fileIds = tags.Where(tag => tag.EntryType == FileEntryType.File).ToList(); - List files = GetRecentByIds(fileIds.Where(r => r.EntryId is int).Select(r=> (int)r.EntryId), filter, subjectGroup, subjectId, searchText, searchInContent).ToList(); + List files = GetRecentByIds(fileIds.Where(r => r.EntryId is int).Select(r => (int)r.EntryId), filter, subjectGroup, subjectId, searchText, searchInContent).ToList(); files.AddRange(GetRecentByIds(fileIds.Where(r => r.EntryId is string).Select(r => (string)r.EntryId), filter, subjectGroup, subjectId, searchText, searchInContent)); var listFileIds = fileIds.Select(tag => tag.EntryId).ToList(); @@ -642,7 +642,7 @@ namespace ASC.Web.Files.Utils { var folderDao = DaoFactory.GetFolderDao(); var fileDao = DaoFactory.GetFileDao(); - var files = fileDao.GetFilesFiltered(fileIds, filter, subjectGroup, subjectId, searchText, searchInContent); + var files = fileDao.GetFilesFiltered(fileIds, filter, subjectGroup, subjectId, searchText, searchInContent, true); files = files.Where(file => file.RootFolderType != FolderType.TRASH).ToList(); files = FileSecurity.FilterRead(files).ToList();