From 9bf50d4493e654dfbf2bf1c0dabb3005b3344a09 Mon Sep 17 00:00:00 2001 From: Qstick Date: Thu, 9 Jul 2020 21:26:57 -0400 Subject: [PATCH] Fixed: Better NetImport Validation (Don't Allow Bad ProfileIds) --- src/NzbDrone.Api/NetImport/NetImportModule.cs | 6 ++++-- src/Radarr.Api.V3/NetImport/NetImportModule.cs | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/NzbDrone.Api/NetImport/NetImportModule.cs b/src/NzbDrone.Api/NetImport/NetImportModule.cs index 760a64ee9..a87384fcd 100644 --- a/src/NzbDrone.Api/NetImport/NetImportModule.cs +++ b/src/NzbDrone.Api/NetImport/NetImportModule.cs @@ -1,17 +1,19 @@ using FluentValidation; using NzbDrone.Core.NetImport; +using NzbDrone.Core.Validation; using NzbDrone.Core.Validation.Paths; namespace NzbDrone.Api.NetImport { public class NetImportModule : ProviderModuleBase { - public NetImportModule(NetImportFactory netImportFactory) + public NetImportModule(NetImportFactory netImportFactory, ProfileExistsValidator profileExistsValidator) : base(netImportFactory, "netimport") { PostValidator.RuleFor(c => c.RootFolderPath).IsValidPath(); PostValidator.RuleFor(c => c.MinimumAvailability).NotNull(); - PostValidator.RuleFor(c => c.ProfileId).NotNull(); + SharedValidator.RuleFor(c => c.ProfileId).ValidId(); + SharedValidator.RuleFor(c => c.ProfileId).SetValidator(profileExistsValidator); } protected override void MapToResource(NetImportResource resource, NetImportDefinition definition) diff --git a/src/Radarr.Api.V3/NetImport/NetImportModule.cs b/src/Radarr.Api.V3/NetImport/NetImportModule.cs index 390da99e0..6034a917d 100644 --- a/src/Radarr.Api.V3/NetImport/NetImportModule.cs +++ b/src/Radarr.Api.V3/NetImport/NetImportModule.cs @@ -1,5 +1,6 @@ using FluentValidation; using NzbDrone.Core.NetImport; +using NzbDrone.Core.Validation; using NzbDrone.Core.Validation.Paths; namespace Radarr.Api.V3.NetImport @@ -8,12 +9,13 @@ namespace Radarr.Api.V3.NetImport { public static readonly NetImportResourceMapper ResourceMapper = new NetImportResourceMapper(); - public NetImportModule(NetImportFactory netImportFactory) + public NetImportModule(NetImportFactory netImportFactory, ProfileExistsValidator profileExistsValidator) : base(netImportFactory, "netimport", ResourceMapper) { SharedValidator.RuleFor(c => c.RootFolderPath).IsValidPath(); SharedValidator.RuleFor(c => c.MinimumAvailability).NotNull(); - SharedValidator.RuleFor(c => c.QualityProfileId).NotNull(); + SharedValidator.RuleFor(c => c.QualityProfileId).ValidId(); + SharedValidator.RuleFor(c => c.QualityProfileId).SetValidator(profileExistsValidator); } protected override void Validate(NetImportDefinition definition, bool includeWarnings)