diff --git a/products/ASC.Files/Core/Services/WCFService/FileOperations/FileDeleteOperation.cs b/products/ASC.Files/Core/Services/WCFService/FileOperations/FileDeleteOperation.cs index f0cb582ffc..33dde3f6bc 100644 --- a/products/ASC.Files/Core/Services/WCFService/FileOperations/FileDeleteOperation.cs +++ b/products/ASC.Files/Core/Services/WCFService/FileOperations/FileDeleteOperation.cs @@ -126,6 +126,9 @@ class FileDeleteOperation : FileOperation, T> var folder = await FolderDao.GetFolderAsync(folderId); var isRoom = DocSpaceHelper.IsRoom(folder.FolderType); + var canDelete = await FilesSecurity.CanDeleteAsync(folder); + checkPermissions = isRoom ? !canDelete : checkPermissions; + T canCalculate = default; if (folder == null) { @@ -136,7 +139,7 @@ class FileDeleteOperation : FileOperation, T> { this[Err] = FilesCommonResource.ErrorMassage_SecurityException_DeleteFolder; } - else if (!_ignoreException && checkPermissions && !await FilesSecurity.CanDeleteAsync(folder)) + else if (!_ignoreException && checkPermissions && !canDelete) { canCalculate = FolderDao.CanCalculateSubitems(folderId) ? default : folderId; @@ -144,8 +147,6 @@ class FileDeleteOperation : FileOperation, T> } else { - checkPermissions = isRoom ? false : checkPermissions; - canCalculate = FolderDao.CanCalculateSubitems(folderId) ? default : folderId; await fileMarker.RemoveMarkAsNewForAllAsync(folder);