From 7918bfc678fc2b7c3550398594f06b89f972ace9 Mon Sep 17 00:00:00 2001 From: "ai.astrakhantsev" Date: Mon, 12 Sep 2022 15:05:36 +0500 Subject: [PATCH] #5998816 PermissionToSetPubliher and PermissionToUpload --- AsbCloudApp/Data/WellCaseDto.cs | 5 +++++ AsbCloudApp/Data/WellFinalDocumentDto.cs | 5 +++++ AsbCloudApp/Services/IWellFinalDocumentsService.cs | 3 ++- .../Services/WellFinalDocumentsService.cs | 9 ++++++--- .../Controllers/WellFinalDocumentsController.cs | 3 ++- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/AsbCloudApp/Data/WellCaseDto.cs b/AsbCloudApp/Data/WellCaseDto.cs index 7117d6b6..a572c2f2 100644 --- a/AsbCloudApp/Data/WellCaseDto.cs +++ b/AsbCloudApp/Data/WellCaseDto.cs @@ -17,6 +17,11 @@ namespace AsbCloudApp.Data /// public int IdWell { get; set; } + /// + /// Разрешение для текущего пользователя добавлять ответственных + /// + public bool PermissionToSetPubliher { get; set; } = true; + /// /// Документ дела скважины /// diff --git a/AsbCloudApp/Data/WellFinalDocumentDto.cs b/AsbCloudApp/Data/WellFinalDocumentDto.cs index 1feec6a5..6c9df1f5 100644 --- a/AsbCloudApp/Data/WellFinalDocumentDto.cs +++ b/AsbCloudApp/Data/WellFinalDocumentDto.cs @@ -19,6 +19,11 @@ namespace AsbCloudApp.Data /// public string NameCategory { get; set; } = string.Empty; + /// + /// Разрешение для текущего пользователя загружать документ + /// + public bool PermissionToUpload { get; set; } = false; + /// /// Список ответственных /// diff --git a/AsbCloudApp/Services/IWellFinalDocumentsService.cs b/AsbCloudApp/Services/IWellFinalDocumentsService.cs index 99fcec37..7b910c74 100644 --- a/AsbCloudApp/Services/IWellFinalDocumentsService.cs +++ b/AsbCloudApp/Services/IWellFinalDocumentsService.cs @@ -25,9 +25,10 @@ namespace AsbCloudApp.Services /// Получение всех записей /// /// + /// /// /// - Task GetByWellId(int idWell, CancellationToken token); + Task GetByWellId(int idWell, int idUser, CancellationToken token); /// /// Получение списка ответственных diff --git a/AsbCloudInfrastructure/Services/WellFinalDocumentsService.cs b/AsbCloudInfrastructure/Services/WellFinalDocumentsService.cs index d426b016..1da7f0a9 100644 --- a/AsbCloudInfrastructure/Services/WellFinalDocumentsService.cs +++ b/AsbCloudInfrastructure/Services/WellFinalDocumentsService.cs @@ -77,7 +77,7 @@ namespace AsbCloudInfrastructure.Services throw new ArgumentInvalidException("Данные по категориям отсутствуют."); } - public async Task GetByWellId(int idWell, CancellationToken token) + public async Task GetByWellId(int idWell, int idUser, CancellationToken token) { var wellFinalDocuments = new List(); @@ -121,12 +121,15 @@ namespace AsbCloudInfrastructure.Services .FirstOrDefault(); } + var publishers = allUsers.Where(x => userIds.Contains(x.Id)); + wellFinalDocuments.Add(new WellFinalDocumentDto { IdCategory = item.IdCategory, NameCategory = item.NameCategory, - Publishers = allUsers.Where(x => userIds.Contains(x.Id)), + Publishers = publishers, FilesCount = allFiles.Count(), - File = actualFile + File = actualFile, + PermissionToUpload = publishers.Any(x => x.Id == idUser) }); }); } diff --git a/AsbCloudWebApi/Controllers/WellFinalDocumentsController.cs b/AsbCloudWebApi/Controllers/WellFinalDocumentsController.cs index bf356599..64bcb0e0 100644 --- a/AsbCloudWebApi/Controllers/WellFinalDocumentsController.cs +++ b/AsbCloudWebApi/Controllers/WellFinalDocumentsController.cs @@ -42,7 +42,8 @@ namespace AsbCloudWebApi.Controllers if (idCompany is null || !await wellService.IsCompanyInvolvedInWellAsync(idCompany ?? default, idWell, token).ConfigureAwait(false)) return Forbid(); - var data = await this.wellFinalDocumentsService.GetByWellId(idWell, token); + var idUser = User?.GetUserId(); + var data = await this.wellFinalDocumentsService.GetByWellId(idWell, idUser ?? default, token); return Ok(data); }