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:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user