From 40ddbbfbb7d5743a55f8ef9d56424bcd58de44bc Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Thu, 27 Oct 2022 09:38:26 -0400 Subject: [PATCH] fix File Update API to update the file size and image dimensions --- Oqtane.Server/Controllers/FileController.cs | 15 +++++++++++++-- Oqtane.Shared/Models/Resource.cs | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Oqtane.Server/Controllers/FileController.cs b/Oqtane.Server/Controllers/FileController.cs index fe8aab8c..63488906 100644 --- a/Oqtane.Server/Controllers/FileController.cs +++ b/Oqtane.Server/Controllers/FileController.cs @@ -20,6 +20,7 @@ using SixLabors.ImageSharp; using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Formats.Png; using System.Net.Http; +using Oqtane.Migrations.Tenant; // ReSharper disable StringIndexOfIsCultureSpecific.1 @@ -135,7 +136,9 @@ namespace Oqtane.Controllers public Models.File Put(int id, [FromBody] Models.File file) { var File = _files.GetFile(file.FileId, false); - if (ModelState.IsValid && File != null && File.Folder.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, EntityNames.Folder, file.FolderId, PermissionNames.Edit)) + if (ModelState.IsValid && file.Folder.SiteId == _alias.SiteId && File != null // ensure file exists + && _userPermissions.IsAuthorized(User, EntityNames.Folder, File.FolderId, PermissionNames.Edit) // ensure user had edit rights to original folder + && _userPermissions.IsAuthorized(User, EntityNames.Folder, file.FolderId, PermissionNames.Edit)) // ensure user has edit rights to new folder { if (File.Name != file.Name || File.FolderId != file.FolderId) { @@ -148,7 +151,15 @@ namespace Oqtane.Controllers System.IO.File.Move(_files.GetFilePath(File), Path.Combine(folderpath, file.Name)); } - file.Extension = Path.GetExtension(file.Name).ToLower().Replace(".", ""); + var newfile = CreateFile(file.Name, file.Folder.FolderId, _files.GetFilePath(file)); + if (newfile != null) + { + file.Extension = newfile.Extension; + file.Size = newfile.Size; + file.ImageWidth = newfile.ImageWidth; + file.ImageHeight = newfile.ImageHeight; + } + file = _files.UpdateFile(file); _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.File, file.FileId, SyncEventActions.Update); _logger.Log(LogLevel.Information, this, LogFunction.Update, "File Updated {File}", file); diff --git a/Oqtane.Shared/Models/Resource.cs b/Oqtane.Shared/Models/Resource.cs index fae66050..96448b4c 100644 --- a/Oqtane.Shared/Models/Resource.cs +++ b/Oqtane.Shared/Models/Resource.cs @@ -16,7 +16,7 @@ namespace Oqtane.Models public ResourceType ResourceType { get; set; } /// - /// Path to the resources. + /// Path to the resource (note that querytring parameters can be included for cache busting ie. ?v=#) /// public string Url {