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);
}