mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-19 13:10:13 -07:00
Fixed: Prevent setting series folder to drone factory, root folder or another series' folder
This commit is contained in:
parent
ff865f56d0
commit
0951e0c74b
5 changed files with 76 additions and 3 deletions
|
@ -32,7 +32,13 @@ namespace NzbDrone.Api.Series
|
|||
public SeriesModule(ICommandExecutor commandExecutor,
|
||||
ISeriesService seriesService,
|
||||
ISeriesStatisticsService seriesStatisticsService,
|
||||
IMapCoversToLocal coverMapper)
|
||||
IMapCoversToLocal coverMapper,
|
||||
RootFolderValidator rootFolderValidator,
|
||||
PathExistsValidator pathExistsValidator,
|
||||
SeriesPathValidator seriesPathValidator,
|
||||
SeriesExistsValidator seriesExistsValidator,
|
||||
DroneFactoryValidator droneFactoryValidator
|
||||
)
|
||||
: base(commandExecutor)
|
||||
{
|
||||
_commandExecutor = commandExecutor;
|
||||
|
@ -48,11 +54,18 @@ namespace NzbDrone.Api.Series
|
|||
|
||||
SharedValidator.RuleFor(s => s.QualityProfileId).ValidId();
|
||||
|
||||
PutValidator.RuleFor(s => s.Path).IsValidPath();
|
||||
PutValidator.RuleFor(s => s.Path)
|
||||
.Cascade(CascadeMode.StopOnFirstFailure)
|
||||
.IsValidPath()
|
||||
.SetValidator(rootFolderValidator)
|
||||
.SetValidator(pathExistsValidator)
|
||||
.SetValidator(seriesPathValidator)
|
||||
.SetValidator(droneFactoryValidator);
|
||||
|
||||
PostValidator.RuleFor(s => s.Path).IsValidPath().When(s => String.IsNullOrEmpty(s.RootFolderPath));
|
||||
PostValidator.RuleFor(s => s.RootFolderPath).IsValidPath().When(s => String.IsNullOrEmpty(s.Path));
|
||||
PostValidator.RuleFor(s => s.Title).NotEmpty();
|
||||
PostValidator.RuleFor(s => s.TvdbId).GreaterThan(0).SetValidator(seriesExistsValidator);
|
||||
}
|
||||
|
||||
private SeriesResource GetSeries(int id)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue