From 59b4441b0d0454f8a4386658d8d59fb411b15b6e Mon Sep 17 00:00:00 2001 From: Bogdan Date: Fri, 26 May 2023 18:35:31 +0300 Subject: [PATCH] Fixed: Enforce validation warnings (cherry picked from commit 48ee1158ad4213fd0690842e2672f52d08f7ad26) Closes #3761 --- .../Store/Actions/Creators/createSaveProviderHandler.js | 4 ++-- src/Lidarr.Api.V1/ProviderControllerBase.cs | 8 ++++---- src/NzbDrone.Core/Indexers/SeedCriteriaSettings.cs | 2 -- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/frontend/src/Store/Actions/Creators/createSaveProviderHandler.js b/frontend/src/Store/Actions/Creators/createSaveProviderHandler.js index 1d2d37dc1..800895d77 100644 --- a/frontend/src/Store/Actions/Creators/createSaveProviderHandler.js +++ b/frontend/src/Store/Actions/Creators/createSaveProviderHandler.js @@ -32,9 +32,9 @@ function createSaveProviderHandler(section, url, options = {}, removeStale = fal const params = { ...queryParams }; // If the user is re-saving the same provider without changes - // force it to be saved. Only applies to editing existing providers. + // force it to be saved. - if (id && _.isEqual(saveData, lastSaveData)) { + if (_.isEqual(saveData, lastSaveData)) { params.forceSave = true; } diff --git a/src/Lidarr.Api.V1/ProviderControllerBase.cs b/src/Lidarr.Api.V1/ProviderControllerBase.cs index 54e5098d7..4e2a1c7e7 100644 --- a/src/Lidarr.Api.V1/ProviderControllerBase.cs +++ b/src/Lidarr.Api.V1/ProviderControllerBase.cs @@ -58,9 +58,9 @@ namespace Lidarr.Api.V1 } [RestPostById] - public ActionResult CreateProvider(TProviderResource providerResource) + public ActionResult CreateProvider([FromBody] TProviderResource providerResource, [FromQuery] bool forceSave = false) { - var providerDefinition = GetDefinition(providerResource, true, false, false); + var providerDefinition = GetDefinition(providerResource, true, !forceSave, false); if (providerDefinition.Enable) { @@ -75,7 +75,7 @@ namespace Lidarr.Api.V1 [RestPutById] public ActionResult UpdateProvider([FromBody] TProviderResource providerResource, [FromQuery] bool forceSave = false) { - var providerDefinition = GetDefinition(providerResource, true, false, false); + var providerDefinition = GetDefinition(providerResource, true, !forceSave, false); // Only test existing definitions if it is enabled and forceSave isn't set. if (providerDefinition.Enable && !forceSave) @@ -191,7 +191,7 @@ namespace Lidarr.Api.V1 protected void VerifyValidationResult(ValidationResult validationResult, bool includeWarnings) { - var result = new NzbDroneValidationResult(validationResult.Errors); + var result = validationResult as NzbDroneValidationResult ?? new NzbDroneValidationResult(validationResult.Errors); if (includeWarnings && (!result.IsValid || result.HasWarnings)) { diff --git a/src/NzbDrone.Core/Indexers/SeedCriteriaSettings.cs b/src/NzbDrone.Core/Indexers/SeedCriteriaSettings.cs index b2ffed74a..04f7ee040 100644 --- a/src/NzbDrone.Core/Indexers/SeedCriteriaSettings.cs +++ b/src/NzbDrone.Core/Indexers/SeedCriteriaSettings.cs @@ -48,8 +48,6 @@ namespace NzbDrone.Core.Indexers public class SeedCriteriaSettings { - private static readonly SeedCriteriaSettingsValidator Validator = new SeedCriteriaSettingsValidator(); - [FieldDefinition(0, Type = FieldType.Textbox, Label = "Seed Ratio", HelpText = "The ratio a torrent should reach before stopping, empty is download client's default. Ratio should be at least 1.0 and follow the indexers rules")] public double? SeedRatio { get; set; }