diff --git a/products/ASC.Files/Core/Core/FileStorageService.cs b/products/ASC.Files/Core/Core/FileStorageService.cs index 5b43168877..f3d1e64981 100644 --- a/products/ASC.Files/Core/Core/FileStorageService.cs +++ b/products/ASC.Files/Core/Core/FileStorageService.cs @@ -2616,7 +2616,9 @@ public class FileStorageService //: IFileStorageService { EventType.Remove, MessageAction.RoomInvitationLinkDeleted }, }; - return await SetAceLinkAsync(roomId, FileEntryType.Folder, SubjectType.InvitationLink, linkId, title, share, messageActions, expirationDate); + var room = await GetFolderDao().GetFolderAsync(roomId).NotFoundIfNull(); + + return await SetAceLinkAsync(room, SubjectType.InvitationLink, linkId, title, share, messageActions, expirationDate); } public async Task> SetExternalLinkAsync(T entryId, FileEntryType entryType, Guid linkId, string title, FileShare share, DateTime expirationDate = default, @@ -2628,8 +2630,11 @@ public class FileStorageService //: IFileStorageService { EventType.Update, MessageAction.ExternalLinkUpdated }, { EventType.Remove, MessageAction.ExternalLinkDeleted }, }; + + FileEntry entry = entryType == FileEntryType.File ? (await GetFileDao().GetFileAsync(entryId)).NotFoundIfNull() + : (await GetFolderDao().GetFolderAsync(entryId)).NotFoundIfNull(); - return await SetAceLinkAsync(entryId, entryType, SubjectType.ExternalLink, linkId, title, share, messageActions, expirationDate, password, disabled, denyDownload, 1); + return await SetAceLinkAsync(entry, SubjectType.ExternalLink, linkId, title, share, messageActions, expirationDate, password, disabled, denyDownload, 1); } public async Task SetAceLinkAsync(T fileId, FileShare share) @@ -3342,16 +3347,12 @@ public class FileStorageService //: IFileStorageService } } - private async Task> SetAceLinkAsync(T entryId, FileEntryType entryType, SubjectType subjectType, Guid linkId, string title, FileShare share, + private async Task> SetAceLinkAsync(FileEntry entry, SubjectType subjectType, Guid linkId, string title, FileShare share, IDictionary messageActions, DateTime expirationDate = default, string password = null, bool disabled = false, bool denyDownload = false, uint minLinksCount = 0) { ArgumentNullOrEmptyException.ThrowIfNullOrEmpty(title); - FileEntry entry = entryType == FileEntryType.File ? - await GetFileDao().GetFileAsync(entryId).NotFoundIfNull() : - await GetFolderDao().GetFolderAsync(entryId).NotFoundIfNull(); - var action = EventType.Create; var links = (await _fileSecurity.GetSharesAsync(entry)) @@ -3413,9 +3414,9 @@ public class FileStorageService //: IFileStorageService throw GenerateException(e); } - return entryType == FileEntryType.File ? - await GetSharedInfoAsync(new[] { entryId }, Array.Empty()) : - await GetSharedInfoAsync(Array.Empty(), new[] { entryId }); + return entry.FileEntryType == FileEntryType.File ? + await GetSharedInfoAsync(new[] { entry.Id }, Array.Empty()) : + await GetSharedInfoAsync(Array.Empty(), new[] { entry.Id }); } private List GetFullAceWrappers(IEnumerable share)