internal string[] GetAlgFilePath(ProjectAlgoEntity projectAlgo) { if (projectAlgo.ProjectId == 0) { return new string[1] { _dbContext.Algorithms.First(x => x.Id == projectAlgo.AlgoId).FileServerPath } } ; else { return(_dbContext.Projects .First(x => x.Id == projectAlgo.ProjectId) .AlgorithmsList .Select(y => y.FileServerPath).Distinct().ToArray()); } }
public ActionResult CheckAccess([FromBody] ProjectAlgoEntity projectAlgo) { var paths = _projectsRepository.GetAlgFilePath(projectAlgo); foreach (var path in paths) { if (!_filesService.IsFolderAllowed(path, _accessor.HttpContext.User.Identity.Name)) { return(Forbid()); } if (!System.IO.File.Exists(path)) { return(NotFound()); } } return(Ok()); }