1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-18 21:35:51 -04:00

Fixed: Validate root folder existence when adding movie

This commit is contained in:
Bogdan
2024-08-21 04:31:39 +03:00
parent 14b125ccd9
commit d346d969de
2 changed files with 6 additions and 1 deletions
@@ -1,4 +1,5 @@
using FluentValidation.Validators; using FluentValidation.Validators;
using NzbDrone.Common.Disk;
using NzbDrone.Common.Extensions; using NzbDrone.Common.Extensions;
using NzbDrone.Core.RootFolders; using NzbDrone.Core.RootFolders;
@@ -19,7 +20,7 @@ namespace NzbDrone.Core.Validation.Paths
{ {
context.MessageFormatter.AppendArgument("path", context.PropertyValue?.ToString()); context.MessageFormatter.AppendArgument("path", context.PropertyValue?.ToString());
return context.PropertyValue == null || _rootFolderService.All().Exists(r => r.Path.PathEquals(context.PropertyValue.ToString())); return context.PropertyValue == null || _rootFolderService.All().Exists(r => r.Path.IsPathValid(PathValidationType.CurrentOs) && r.Path.PathEquals(context.PropertyValue.ToString()));
} }
} }
} }
@@ -70,6 +70,7 @@ namespace Radarr.Api.V3.Movies
RecycleBinValidator recycleBinValidator, RecycleBinValidator recycleBinValidator,
SystemFolderValidator systemFolderValidator, SystemFolderValidator systemFolderValidator,
QualityProfileExistsValidator qualityProfileExistsValidator, QualityProfileExistsValidator qualityProfileExistsValidator,
RootFolderExistsValidator rootFolderExistsValidator,
MovieFolderAsRootFolderValidator movieFolderAsRootFolderValidator, MovieFolderAsRootFolderValidator movieFolderAsRootFolderValidator,
Logger logger) Logger logger)
: base(signalRBroadcaster) : base(signalRBroadcaster)
@@ -103,6 +104,7 @@ namespace Radarr.Api.V3.Movies
PostValidator.RuleFor(s => s.Path).IsValidPath().When(s => s.RootFolderPath.IsNullOrWhiteSpace()); PostValidator.RuleFor(s => s.Path).IsValidPath().When(s => s.RootFolderPath.IsNullOrWhiteSpace());
PostValidator.RuleFor(s => s.RootFolderPath) PostValidator.RuleFor(s => s.RootFolderPath)
.IsValidPath() .IsValidPath()
.SetValidator(rootFolderExistsValidator)
.SetValidator(movieFolderAsRootFolderValidator) .SetValidator(movieFolderAsRootFolderValidator)
.When(s => s.Path.IsNullOrWhiteSpace()); .When(s => s.Path.IsNullOrWhiteSpace());
PostValidator.RuleFor(s => s.Title).NotEmpty().When(s => s.TmdbId <= 0); PostValidator.RuleFor(s => s.Title).NotEmpty().When(s => s.TmdbId <= 0);
@@ -240,6 +242,7 @@ namespace Radarr.Api.V3.Movies
[RestPostById] [RestPostById]
[Consumes("application/json")] [Consumes("application/json")]
[Produces("application/json")]
public ActionResult<MovieResource> AddMovie([FromBody] MovieResource moviesResource) public ActionResult<MovieResource> AddMovie([FromBody] MovieResource moviesResource)
{ {
var movie = _addMovieService.AddMovie(moviesResource.ToModel()); var movie = _addMovieService.AddMovie(moviesResource.ToModel());
@@ -249,6 +252,7 @@ namespace Radarr.Api.V3.Movies
[RestPutById] [RestPutById]
[Consumes("application/json")] [Consumes("application/json")]
[Produces("application/json")]
public ActionResult<MovieResource> UpdateMovie([FromBody] MovieResource moviesResource, [FromQuery] bool moveFiles = false) public ActionResult<MovieResource> UpdateMovie([FromBody] MovieResource moviesResource, [FromQuery] bool moveFiles = false)
{ {
var movie = _moviesService.GetMovie(moviesResource.Id); var movie = _moviesService.GetMovie(moviesResource.Id);