1
0
Fork 0
mirror of https://github.com/lidarr/Lidarr synced 2024-12-21 23:32:27 +00:00

Fixed: Ensure Root Folder exists when Adding Artist

Closes #5041
This commit is contained in:
Bogdan 2024-08-26 03:23:24 +03:00
parent 8ff8c27e24
commit f49388f3c4
2 changed files with 6 additions and 1 deletions

View file

@ -63,6 +63,7 @@ public ArtistController(IBroadcastSignalRMessage signalRBroadcaster,
SystemFolderValidator systemFolderValidator,
QualityProfileExistsValidator qualityProfileExistsValidator,
MetadataProfileExistsValidator metadataProfileExistsValidator,
RootFolderExistsValidator rootFolderExistsValidator,
ArtistFolderAsRootFolderValidator artistFolderAsRootFolderValidator)
: base(signalRBroadcaster)
{
@ -95,6 +96,7 @@ public ArtistController(IBroadcastSignalRMessage signalRBroadcaster,
PostValidator.RuleFor(s => s.Path).IsValidPath().When(s => s.RootFolderPath.IsNullOrWhiteSpace());
PostValidator.RuleFor(s => s.RootFolderPath)
.IsValidPath()
.SetValidator(rootFolderExistsValidator)
.SetValidator(artistFolderAsRootFolderValidator)
.When(s => s.Path.IsNullOrWhiteSpace());
PostValidator.RuleFor(s => s.ArtistName).NotEmpty();
@ -154,6 +156,7 @@ public List<ArtistResource> AllArtists(Guid? mbId)
[RestPostById]
[Consumes("application/json")]
[Produces("application/json")]
public ActionResult<ArtistResource> AddArtist(ArtistResource artistResource)
{
var artist = _addArtistService.AddArtist(artistResource.ToModel());
@ -163,6 +166,7 @@ public ActionResult<ArtistResource> AddArtist(ArtistResource artistResource)
[RestPutById]
[Consumes("application/json")]
[Produces("application/json")]
public ActionResult<ArtistResource> UpdateArtist(ArtistResource artistResource, bool moveFiles = false)
{
var artist = _artistService.GetArtist(artistResource.Id);

View file

@ -1,4 +1,5 @@
using FluentValidation.Validators;
using NzbDrone.Common.Disk;
using NzbDrone.Common.Extensions;
using NzbDrone.Core.RootFolders;
@ -19,7 +20,7 @@ protected override bool IsValid(PropertyValidatorContext context)
{
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()));
}
}
}