From b46a7c33a2f63677cbaf97f9c0e48164db24a38b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B0=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=92?= =?UTF-8?q?=D0=BB=D0=B0=D0=B4=D0=B8=D0=BC=D0=B8=D1=80?= Date: Wed, 19 Jan 2022 11:42:26 +0500 Subject: [PATCH] Added Permission attribute to non-anonymous controller methods --- AsbCloudWebApi/Controllers/AdminPermissionController.cs | 1 + AsbCloudWebApi/Controllers/AdminTelemetryController.cs | 1 + AsbCloudWebApi/Controllers/AdminWellController.cs | 1 + AsbCloudWebApi/Controllers/AuthController.cs | 1 + AsbCloudWebApi/Controllers/ClusterController.cs | 2 ++ AsbCloudWebApi/Controllers/DepositController.cs | 3 +++ AsbCloudWebApi/Controllers/DrillFlowChartController.cs | 5 +++++ AsbCloudWebApi/Controllers/DrillParamsController.cs | 8 ++++++++ AsbCloudWebApi/Controllers/DrillingProgramController.cs | 4 ++++ AsbCloudWebApi/Controllers/FileController.cs | 6 ++++++ AsbCloudWebApi/Controllers/MeasureController.cs | 6 ++++++ AsbCloudWebApi/Controllers/MessageController.cs | 2 ++ AsbCloudWebApi/Controllers/OperationStatController.cs | 5 +++++ AsbCloudWebApi/Controllers/ReportController.cs | 4 ++++ AsbCloudWebApi/Controllers/RequerstTrackerController.cs | 6 +++++- AsbCloudWebApi/Controllers/SetpointsController.cs | 3 +++ .../Controllers/TelemetryAnalyticsController.cs | 6 ++++++ AsbCloudWebApi/Controllers/TelemetryController.cs | 5 +++++ .../Controllers/TelemetryDataBaseController.cs | 2 ++ AsbCloudWebApi/Controllers/WellCompositeController.cs | 2 ++ AsbCloudWebApi/Controllers/WellController.cs | 3 +++ AsbCloudWebApi/Controllers/WellOperationController.cs | 9 +++++++++ 22 files changed, 84 insertions(+), 1 deletion(-) diff --git a/AsbCloudWebApi/Controllers/AdminPermissionController.cs b/AsbCloudWebApi/Controllers/AdminPermissionController.cs index dcb76670..3bfb9663 100644 --- a/AsbCloudWebApi/Controllers/AdminPermissionController.cs +++ b/AsbCloudWebApi/Controllers/AdminPermissionController.cs @@ -19,6 +19,7 @@ namespace AsbCloudWebApi.Controllers {} [HttpGet("Autogenerated")] + [Permission] public IActionResult GetAutogenerated() { var controllers = Assembly.GetExecutingAssembly().GetTypes(). diff --git a/AsbCloudWebApi/Controllers/AdminTelemetryController.cs b/AsbCloudWebApi/Controllers/AdminTelemetryController.cs index 8fd41f19..84ed7768 100644 --- a/AsbCloudWebApi/Controllers/AdminTelemetryController.cs +++ b/AsbCloudWebApi/Controllers/AdminTelemetryController.cs @@ -28,6 +28,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpPost] [Route("/merge/{idFrom}/{idTo}")] + [Permission] public async Task MergeTelemetriesAsync(int idFrom, int idTo, CancellationToken token = default) { var count = await telemetryService.MergeAsync(idFrom, idTo, token) diff --git a/AsbCloudWebApi/Controllers/AdminWellController.cs b/AsbCloudWebApi/Controllers/AdminWellController.cs index f1a211ef..2a9f8a28 100644 --- a/AsbCloudWebApi/Controllers/AdminWellController.cs +++ b/AsbCloudWebApi/Controllers/AdminWellController.cs @@ -17,6 +17,7 @@ namespace AsbCloudWebApi.Controllers } [HttpPost("EnshureTimezonesIsSet")] + [Permission] public IActionResult EnsureTimestamps() { ((IWellService)service).EnshureTimezonesIsSet(); diff --git a/AsbCloudWebApi/Controllers/AuthController.cs b/AsbCloudWebApi/Controllers/AuthController.cs index d63f0e26..7b9e828e 100644 --- a/AsbCloudWebApi/Controllers/AuthController.cs +++ b/AsbCloudWebApi/Controllers/AuthController.cs @@ -81,6 +81,7 @@ namespace AsbCloudWebApi.Controllers /// Ок [Authorize] [HttpPut("{idUser}/ChangePassword")] + [Permission] public IActionResult ChangePassword([FromRoute]int idUser, [FromBody]string newPassword) { const string roleName = "Администратор"; diff --git a/AsbCloudWebApi/Controllers/ClusterController.cs b/AsbCloudWebApi/Controllers/ClusterController.cs index 3b2fdcdd..16b2ba09 100644 --- a/AsbCloudWebApi/Controllers/ClusterController.cs +++ b/AsbCloudWebApi/Controllers/ClusterController.cs @@ -29,6 +29,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpGet()] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetClustersAsync(CancellationToken token = default) { @@ -49,6 +50,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpGet("{idCluster}")] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetWellsAsync(int idCluster, CancellationToken token = default) { diff --git a/AsbCloudWebApi/Controllers/DepositController.cs b/AsbCloudWebApi/Controllers/DepositController.cs index 6bfac7f9..5344e1a9 100644 --- a/AsbCloudWebApi/Controllers/DepositController.cs +++ b/AsbCloudWebApi/Controllers/DepositController.cs @@ -29,6 +29,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpGet] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetDepositsAsync(CancellationToken token = default) { @@ -48,6 +49,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpGet("drillParamsWells")] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetDepositsDrillParamsAsync(CancellationToken token = default) { @@ -68,6 +70,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpGet("{depositId}")] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetClustersAsync(int depositId, CancellationToken token = default) diff --git a/AsbCloudWebApi/Controllers/DrillFlowChartController.cs b/AsbCloudWebApi/Controllers/DrillFlowChartController.cs index adaccda4..99714aa7 100644 --- a/AsbCloudWebApi/Controllers/DrillFlowChartController.cs +++ b/AsbCloudWebApi/Controllers/DrillFlowChartController.cs @@ -37,6 +37,7 @@ namespace AsbCloudWebApi.Controllers /// Список параметров для коридоров бурения [HttpGet] [Route("api/well/{idWell}/drillFlowChart")] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int) System.Net.HttpStatusCode.OK)] public async Task GetAsync(int idWell, DateTime updateFrom = default, CancellationToken token = default) @@ -85,6 +86,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpPost] [Route("api/well/{idWell}/drillFlowChart")] + [Permission] [ProducesResponseType(typeof(int), (int) System.Net.HttpStatusCode.OK)] public async Task InsertAsync(int idWell, DrillFlowChartDto drillFlowChartDto, CancellationToken token = default) @@ -109,6 +111,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpPost] [Route("api/well/{idWell}/drillFlowChart/range")] + [Permission] [ProducesResponseType(typeof(int), (int) System.Net.HttpStatusCode.OK)] public async Task InsertRangeAsync(int idWell, IEnumerable drillFlowChartParams, CancellationToken token = default) @@ -134,6 +137,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpPut] [Route("api/well/{idWell}/drillFlowChart")] + [Permission] [ProducesResponseType(typeof(int), (int) System.Net.HttpStatusCode.OK)] public async Task EditAsync(int idWell, DrillFlowChartDto drillFlowChart, CancellationToken token = default) @@ -159,6 +163,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpDelete] [Route("api/well/{idWell}/drillFlowChart")] + [Permission] [ProducesResponseType(typeof(int), (int) System.Net.HttpStatusCode.OK)] public async Task DeleteAsync(int idWell, int drillFlowChartParamsId, CancellationToken token = default) diff --git a/AsbCloudWebApi/Controllers/DrillParamsController.cs b/AsbCloudWebApi/Controllers/DrillParamsController.cs index 297e54c4..50c3a432 100644 --- a/AsbCloudWebApi/Controllers/DrillParamsController.cs +++ b/AsbCloudWebApi/Controllers/DrillParamsController.cs @@ -33,6 +33,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// Значения по умолчанию для режимов бурения [HttpGet("autoParams")] + [Permission] [ProducesResponseType(typeof(DrillParamsDto), (int) System.Net.HttpStatusCode.OK)] public async Task GetDefaultAsync(int idWell, double startDepth, double endDepth, CancellationToken token = default) @@ -56,6 +57,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// Список параметров для режимов бурения на скважине [HttpGet] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int) System.Net.HttpStatusCode.OK)] public async Task GetAllAsync(int idWell, CancellationToken token = default) @@ -79,6 +81,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpPost] + [Permission] [ProducesResponseType(typeof(int), (int) System.Net.HttpStatusCode.OK)] public async Task InsertAsync(int idWell, DrillParamsDto drillParamsDto, CancellationToken token = default) @@ -102,6 +105,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpPost("range")] + [Permission] [ProducesResponseType(typeof(int), (int) System.Net.HttpStatusCode.OK)] public async Task InsertRangeAsync(int idWell, IEnumerable drillParams, CancellationToken token = default) @@ -126,6 +130,7 @@ namespace AsbCloudWebApi.Controllers /// /// кол-во затронутых изменениями записей [HttpPost("save")] + [Permission] [ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)] public async Task SaveAsync(int idWell, IEnumerable drillParams, CancellationToken token = default) { @@ -150,6 +155,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpPut] + [Permission] [ProducesResponseType(typeof(int), (int) System.Net.HttpStatusCode.OK)] public async Task UpdateAsync(int idWell, int dtoId, DrillParamsDto drillParamsDto, CancellationToken token = default) @@ -174,6 +180,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpDelete] + [Permission] [ProducesResponseType(typeof(int), (int) System.Net.HttpStatusCode.OK)] public async Task DeleteAsync(int idWell, int drillParamsId, CancellationToken token = default) @@ -197,6 +204,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// Список параметров для режимов бурения на композитной скважине [HttpGet("composite")] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int) System.Net.HttpStatusCode.OK)] public async Task GetCompositeAllAsync(int idWell, CancellationToken token = default) { diff --git a/AsbCloudWebApi/Controllers/DrillingProgramController.cs b/AsbCloudWebApi/Controllers/DrillingProgramController.cs index 7be00083..d79aa198 100644 --- a/AsbCloudWebApi/Controllers/DrillingProgramController.cs +++ b/AsbCloudWebApi/Controllers/DrillingProgramController.cs @@ -32,6 +32,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// Возвращает файл программы бурения [HttpGet] + [Permission] [ProducesResponseType(typeof(FileResult), (int)System.Net.HttpStatusCode.OK)] public async Task GetAsync(int idWell, CancellationToken token = default) { @@ -64,6 +65,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// Возвращает ссылку на файл программы бурения в облаке [HttpGet("webUrl")] + [Permission] [ProducesResponseType(typeof(string), (int)System.Net.HttpStatusCode.OK)] public async Task GetOrCreateSharedUrlAsync(int idWell, [FromServices]IFileShareService fileShareService, CancellationToken token = default) { @@ -91,6 +93,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpPost("fileMark")] + [Permission] public async Task CreateFileMarkAsync(int idWell, FileMarkDto markDto, CancellationToken token = default) { var idCompany = User.GetCompanyId(); @@ -116,6 +119,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpDelete("fileMark")] + [Permission] [ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)] public async Task DeleteFileMarkAsync(int idWell, int idMark, CancellationToken token = default) diff --git a/AsbCloudWebApi/Controllers/FileController.cs b/AsbCloudWebApi/Controllers/FileController.cs index 8dd2aa74..7a11b397 100644 --- a/AsbCloudWebApi/Controllers/FileController.cs +++ b/AsbCloudWebApi/Controllers/FileController.cs @@ -34,6 +34,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpPost] + [Permission] [ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)] public async Task SaveFilesAsync(int idWell, int idCategory, [FromForm] IFormFileCollection files, CancellationToken token = default) @@ -79,6 +80,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// Список информации о файлах в этой категории [HttpGet] + [Permission] [ProducesResponseType(typeof(PaginationContainer), (int)System.Net.HttpStatusCode.OK)] public async Task GetFilesInfoAsync( [FromRoute] int idWell, @@ -112,6 +114,7 @@ namespace AsbCloudWebApi.Controllers /// Запрашиваемый файл [HttpGet] [Route("{fileId}")] + [Permission] [ProducesResponseType(typeof(PhysicalFileResult), (int)System.Net.HttpStatusCode.OK)] public async Task GetFileAsync([FromRoute] int idWell, int fileId, CancellationToken token = default) @@ -149,6 +152,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpDelete("{idFile}")] + [Permission] [ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)] public async Task DeleteAsync(int idWell, int idFile, CancellationToken token = default) @@ -172,6 +176,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpPost("fileMark")] + [Permission] public async Task CreateFileMarkAsync(int idWell, FileMarkDto markDto, CancellationToken token = default) { var idCompany = User.GetCompanyId(); @@ -197,6 +202,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpDelete("fileMark")] + [Permission] [ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)] public async Task DeleteFileMarkAsync(int idWell, int idMark, CancellationToken token = default) diff --git a/AsbCloudWebApi/Controllers/MeasureController.cs b/AsbCloudWebApi/Controllers/MeasureController.cs index 203cdd61..eafbd753 100644 --- a/AsbCloudWebApi/Controllers/MeasureController.cs +++ b/AsbCloudWebApi/Controllers/MeasureController.cs @@ -22,6 +22,7 @@ namespace AsbCloudWebApi.Controllers } [HttpGet] + [Permission] [Route("categories")] public async Task GetCategoriesAsync([FromRoute] int idWell, CancellationToken token = default) { @@ -33,6 +34,7 @@ namespace AsbCloudWebApi.Controllers } [HttpGet] + [Permission] [Route("last/{idCategory}")] public async Task GetLastAsync([FromRoute] int idWell, [FromRoute] int idCategory, CancellationToken token = default) { @@ -51,6 +53,7 @@ namespace AsbCloudWebApi.Controllers /// /// [HttpGet] + [Permission] [Route("history")] public async Task GetHisoryAsync([FromRoute] int idWell, int? idCategory = null, CancellationToken token = default) { @@ -62,6 +65,7 @@ namespace AsbCloudWebApi.Controllers } [HttpPost] + [Permission] public async Task InsertAsync([FromRoute] int idWell, MeasureDto data, CancellationToken token = default) { if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false)) @@ -72,6 +76,7 @@ namespace AsbCloudWebApi.Controllers } [HttpPut] + [Permission] public async Task UpdateAsync([FromRoute] int idWell, MeasureDto data, CancellationToken token = default) { if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false)) @@ -82,6 +87,7 @@ namespace AsbCloudWebApi.Controllers } [HttpDelete] + [Permission] [Route("history/{idData}")] public async Task MarkAsDeleteAsync([FromRoute] int idWell, [FromRoute] int idData, CancellationToken token = default) { diff --git a/AsbCloudWebApi/Controllers/MessageController.cs b/AsbCloudWebApi/Controllers/MessageController.cs index 8c9c06c5..384e9b11 100644 --- a/AsbCloudWebApi/Controllers/MessageController.cs +++ b/AsbCloudWebApi/Controllers/MessageController.cs @@ -34,6 +34,7 @@ namespace AsbCloudWebApi.Controllers /// Токен для отмены задачи /// список сообщений по скважине [HttpGet] + [Permission] [ProducesResponseType(typeof(PaginationContainer), (int)System.Net.HttpStatusCode.OK)] public async Task GetMessagesAsync(int idWell, int skip = 0, int take = 32, [FromQuery] IEnumerable categoryids = default, @@ -62,6 +63,7 @@ namespace AsbCloudWebApi.Controllers /// список сообщений по скважине [HttpGet] [Route("datesRange")] + [Permission] [ProducesResponseType(typeof(DatesRangeDto), (int)System.Net.HttpStatusCode.OK)] public async Task GetMessagesDateRangeAsync(int idWell, CancellationToken token = default) { diff --git a/AsbCloudWebApi/Controllers/OperationStatController.cs b/AsbCloudWebApi/Controllers/OperationStatController.cs index 556ea4d5..909e0bb6 100644 --- a/AsbCloudWebApi/Controllers/OperationStatController.cs +++ b/AsbCloudWebApi/Controllers/OperationStatController.cs @@ -33,6 +33,7 @@ namespace AsbCloudWebApi.Controllers /// /// Возвращает данные по среднему и максимальному МСП на кусту [HttpGet("well/{idWell}/ropStat")] + [Permission] [ProducesResponseType(typeof(ClusterRopStatDto), (int)System.Net.HttpStatusCode.OK)] public async Task GetClusterRopStatByIdWellAsync([FromRoute] int idWell, CancellationToken token = default) @@ -72,6 +73,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpGet] [Route("cluster/{idCluster}/stat")] // TODO: Это статистика кластера, перенести в ClusterOperationStatController + [Permission] [ProducesResponseType(typeof(StatClusterDto), (int)System.Net.HttpStatusCode.OK)] public async Task GetStatClusterAsync(int idCluster, CancellationToken token = default) @@ -98,6 +100,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpGet] [Route("wellsStats")] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetWellsStatAsync([FromQuery]IEnumerable idWells, CancellationToken token = default) { @@ -115,6 +118,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpGet] [Route("well/{idWell}/stat")] + [Permission] [ProducesResponseType(typeof(StatWellDto), (int)System.Net.HttpStatusCode.OK)] public async Task GetStatWellAsync(int idWell, CancellationToken token = default) @@ -135,6 +139,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpGet] [Route("well/{idWell}/tvd")] + [Permission] [ProducesResponseType(typeof(IEnumerable>), (int)System.Net.HttpStatusCode.OK)] public async Task GetTvdAsync(int idWell, CancellationToken token = default) diff --git a/AsbCloudWebApi/Controllers/ReportController.cs b/AsbCloudWebApi/Controllers/ReportController.cs index 1d550a27..63b623c5 100644 --- a/AsbCloudWebApi/Controllers/ReportController.cs +++ b/AsbCloudWebApi/Controllers/ReportController.cs @@ -42,6 +42,7 @@ namespace AsbCloudWebApi.Controllers /// Токен для отмены задачи /// id фоновой задачи формирования отчета [HttpPost] + [Permission] [ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)] public async Task CreateReportAsync(int idWell, int stepSeconds, int format, DateTime begin = default, DateTime end = default, @@ -80,6 +81,7 @@ namespace AsbCloudWebApi.Controllers /// Токен для отмены задачи /// Список имен существующих отчетов (отчетов) [HttpGet] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetAllReportsNamesByWellAsync(int idWell, CancellationToken token = default) { @@ -109,6 +111,7 @@ namespace AsbCloudWebApi.Controllers /// прогнозируемое кол-во страниц отчета [HttpGet] [Route("reportSize")] + [Permission] [ProducesResponseType(typeof(string), (int)System.Net.HttpStatusCode.OK)] public async Task GetReportSizeAsync(int idWell, int stepSeconds, int format, DateTime begin = default, @@ -137,6 +140,7 @@ namespace AsbCloudWebApi.Controllers /// Даты самого старого и самого свежего отчетов в БД [HttpGet] [Route("datesRange")] + [Permission] [ProducesResponseType(typeof(DatesRangeDto), (int)System.Net.HttpStatusCode.OK)] public async Task GetReportsDateRangeAsync(int idWell, CancellationToken token = default) { diff --git a/AsbCloudWebApi/Controllers/RequerstTrackerController.cs b/AsbCloudWebApi/Controllers/RequerstTrackerController.cs index d6c86b08..53ae531c 100644 --- a/AsbCloudWebApi/Controllers/RequerstTrackerController.cs +++ b/AsbCloudWebApi/Controllers/RequerstTrackerController.cs @@ -24,6 +24,7 @@ namespace AsbCloudWebApi.Controllers /// от 1 до 1000 /// [HttpGet] + [Permission] public IActionResult GetAll(int take = 512) { var result = service.GetAll(take); @@ -36,6 +37,7 @@ namespace AsbCloudWebApi.Controllers /// от 1 до 1000 /// [HttpGet("fast")] + [Permission] public IActionResult GetFast(int take = 512) { var result = service.GetFast(take); @@ -48,6 +50,7 @@ namespace AsbCloudWebApi.Controllers /// от 1 до 1000 /// [HttpGet("slow")] + [Permission] public IActionResult GetSlow(int take = 512) { var result = service.GetSlow(take); @@ -60,6 +63,7 @@ namespace AsbCloudWebApi.Controllers /// от 1 до 1000 /// [HttpGet("error")] + [Permission] public IActionResult GetError(int take = 512) { var result = service.GetError(take); @@ -72,7 +76,7 @@ namespace AsbCloudWebApi.Controllers /// от 1 до 1000 /// [HttpGet("users")] - + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public IActionResult GetUsersStat(int take = 512) { diff --git a/AsbCloudWebApi/Controllers/SetpointsController.cs b/AsbCloudWebApi/Controllers/SetpointsController.cs index 22a129a6..3f3e481e 100644 --- a/AsbCloudWebApi/Controllers/SetpointsController.cs +++ b/AsbCloudWebApi/Controllers/SetpointsController.cs @@ -48,6 +48,7 @@ namespace AsbCloudWebApi.Controllers /// /// [HttpPost("api/well/{idWell}/setpoints")] + [Permission] [ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)] public async Task InsertAsync(int idWell, SetpointsRequestDto setpoints, CancellationToken token = default) { @@ -86,6 +87,7 @@ namespace AsbCloudWebApi.Controllers /// /// [HttpGet("api/well/{idWell}/setpoints")] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetByIdWellAsync([FromRoute] int idWell, CancellationToken token = default) { @@ -147,6 +149,7 @@ namespace AsbCloudWebApi.Controllers /// /// 1 - удалено, 0 и меньше - не удалено [HttpDelete("api/well/{idWell}/setpoints/{id}")] + [Permission] public async Task TryDeleteByIdWellAsync(int idWell, int id, CancellationToken token = default) { int? idCompany = User.GetCompanyId(); diff --git a/AsbCloudWebApi/Controllers/TelemetryAnalyticsController.cs b/AsbCloudWebApi/Controllers/TelemetryAnalyticsController.cs index 0ccd804d..fdeafb35 100644 --- a/AsbCloudWebApi/Controllers/TelemetryAnalyticsController.cs +++ b/AsbCloudWebApi/Controllers/TelemetryAnalyticsController.cs @@ -37,6 +37,7 @@ namespace AsbCloudWebApi.Controllers /// Список операций на скважине за все время [HttpGet] [Route("operationsByWell")] + [Permission] [ProducesResponseType(typeof(PaginationContainer), (int)System.Net.HttpStatusCode.OK)] public async Task GetOperationsByWellAsync(int idWell, int skip = 0, int take = 32, [FromQuery] IEnumerable categoryIds = default, DateTime begin = default, DateTime end = default, @@ -65,6 +66,7 @@ namespace AsbCloudWebApi.Controllers /// Коллекцию данных по скважине "глубина-день" [HttpGet] [Route("wellDepthToDay")] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetWellDepthToDayAsync(int idWell, CancellationToken token = default) @@ -94,6 +96,7 @@ namespace AsbCloudWebApi.Controllers /// Коллекцию данных по глубине скважины за период [HttpGet] [Route("wellDepthToInterval")] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetWellDepthToIntervalAsync(int idWell, int intervalSeconds, int shiftStartSec, CancellationToken token = default) @@ -123,6 +126,7 @@ namespace AsbCloudWebApi.Controllers /// Коллекцию операций на скважине [HttpGet] [Route("operationsSummary")] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetOperationsSummaryAsync(int idWell, DateTime begin = default, DateTime end = default, CancellationToken token = default) @@ -152,6 +156,7 @@ namespace AsbCloudWebApi.Controllers /// Коллекцию операций на скважине [HttpGet] [Route("operationsToInterval")] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetOperationsToIntervalAsync(int idWell, int intervalSeconds, int workBeginSeconds, CancellationToken token = default) @@ -179,6 +184,7 @@ namespace AsbCloudWebApi.Controllers /// Даты самой первой и самой последней операций на скважине [HttpGet] [Route("datesRange")] + [Permission] [ProducesResponseType(typeof(DatesRangeDto), (int)System.Net.HttpStatusCode.OK)] public async Task GetOperationsDateRangeAsync(int idWell, CancellationToken token = default) { diff --git a/AsbCloudWebApi/Controllers/TelemetryController.cs b/AsbCloudWebApi/Controllers/TelemetryController.cs index e66734a9..419501c1 100644 --- a/AsbCloudWebApi/Controllers/TelemetryController.cs +++ b/AsbCloudWebApi/Controllers/TelemetryController.cs @@ -47,6 +47,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpPost] [Route("{uid}/info")] + [Permission] public async Task PostInfoAsync(string uid, [FromBody] TelemetryInfoDto info, CancellationToken token = default) { @@ -63,6 +64,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpPost] [Route("{uid}/timezone")] + [Permission] public async Task UpdateTimeZoneAsync(string uid, SimpleTimezoneDto timezone, CancellationToken token = default) { @@ -80,6 +82,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpPost] [Route("{uid}/message")] + [Permission] public async Task PostMessagesAsync(string uid, [FromBody] IEnumerable dtos, CancellationToken token = default) { @@ -102,6 +105,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpPost] [Route("{uid}/event")] + [Permission] public async Task PostEventsAsync(string uid, [FromBody] List events, CancellationToken token = default) { @@ -118,6 +122,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpPost] [Route("{uid}/user")] + [Permission] public IActionResult PostUsers(string uid, [FromBody] List users) { telemetryUserService.Upsert(uid, users); diff --git a/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs b/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs index 869f4815..3c1f32f5 100644 --- a/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs +++ b/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs @@ -71,6 +71,7 @@ namespace AsbCloudWebApi.Controllers /// Токен завершения задачи /// [HttpGet("{idWell}")] + [Permission] public virtual async Task> GetDataAsync(int idWell, DateTime begin = default, int intervalSec = 600, int approxPointsCount = 1024, CancellationToken token = default) { @@ -99,6 +100,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpGet] [Route("{idWell}/datesRange")] + [Permission] [ProducesResponseType(typeof(DatesRangeDto), (int)System.Net.HttpStatusCode.OK)] public virtual async Task GetDataDatesRangeAsync(int idWell, CancellationToken token = default) diff --git a/AsbCloudWebApi/Controllers/WellCompositeController.cs b/AsbCloudWebApi/Controllers/WellCompositeController.cs index a5915b8b..ee3314c5 100644 --- a/AsbCloudWebApi/Controllers/WellCompositeController.cs +++ b/AsbCloudWebApi/Controllers/WellCompositeController.cs @@ -29,6 +29,7 @@ namespace AsbCloudWebApi.Controllers /// /// [HttpGet] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetAsync(int idWell, CancellationToken token = default) { @@ -47,6 +48,7 @@ namespace AsbCloudWebApi.Controllers /// /// [HttpPost] + [Permission] public async Task SaveAsync(int idWell, IEnumerable wellComposites, CancellationToken token = default) { if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false)) diff --git a/AsbCloudWebApi/Controllers/WellController.cs b/AsbCloudWebApi/Controllers/WellController.cs index 336340e0..bd64cdbc 100644 --- a/AsbCloudWebApi/Controllers/WellController.cs +++ b/AsbCloudWebApi/Controllers/WellController.cs @@ -27,6 +27,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// Список скважин [HttpGet] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetWellsAsync(CancellationToken token = default) { @@ -53,6 +54,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// Информация о требуемой скважине [HttpGet("{idWell}")] + [Permission] [ProducesResponseType(typeof(WellDto), (int)System.Net.HttpStatusCode.OK)] public async Task GetAsync(int idWell, CancellationToken token = default) { @@ -77,6 +79,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpPut("{idWell}")] + [Permission] [ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)] public async Task UpdateWellAsync(int idWell, WellDto dto, CancellationToken token = default) diff --git a/AsbCloudWebApi/Controllers/WellOperationController.cs b/AsbCloudWebApi/Controllers/WellOperationController.cs index ced24d5a..d5c3aee8 100644 --- a/AsbCloudWebApi/Controllers/WellOperationController.cs +++ b/AsbCloudWebApi/Controllers/WellOperationController.cs @@ -36,6 +36,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpGet] [Route("sectionTypes")] + [Permission] [ProducesResponseType(typeof(IDictionary), (int)System.Net.HttpStatusCode.OK)] public IActionResult GetSectionTypes() { @@ -50,6 +51,7 @@ namespace AsbCloudWebApi.Controllers /// [HttpGet] [Route("categories")] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public IActionResult GetCategories() { @@ -73,6 +75,7 @@ namespace AsbCloudWebApi.Controllers /// /// Список операций на скважине в контейнере для постраничного просмотра [HttpGet] + [Permission] [ProducesResponseType(typeof(PaginationContainer), (int)System.Net.HttpStatusCode.OK)] public async Task GetOperationsAsync( [FromRoute] int idWell, @@ -115,6 +118,7 @@ namespace AsbCloudWebApi.Controllers /// Нужную операцию на скважине [HttpGet] [Route("{idOperation}")] + [Permission] [ProducesResponseType(typeof(WellOperationDto), (int)System.Net.HttpStatusCode.OK)] public async Task GetAsync(int idWell, int idOperation, CancellationToken token = default) @@ -134,6 +138,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// Количество добавленных в БД строк [HttpPost] + [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task InsertRangeAsync(int idWell, [FromBody] IEnumerable values, CancellationToken token = default) @@ -155,6 +160,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// Количество обновленных в БД строк [HttpPut("{idOperation}")] + [Permission] [ProducesResponseType(typeof(WellOperationDto), (int)System.Net.HttpStatusCode.OK)] public async Task UpdateAsync(int idWell, int idOperation, [FromBody] WellOperationDto value, CancellationToken token = default) @@ -175,6 +181,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// Количество удаленных из БД строк [HttpDelete("{idOperation}")] + [Permission] [ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)] public async Task DeleteAsync(int idWell, int idOperation, CancellationToken token = default) { @@ -198,6 +205,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpPost] + [Permission] [Route("import/{options}")] public async Task ImportAsync(int idWell, [FromForm] IFormFileCollection files, @@ -242,6 +250,7 @@ namespace AsbCloudWebApi.Controllers /// Запрашиваемый файл [HttpGet] [Route("export")] + [Permission] [ProducesResponseType(typeof(PhysicalFileResult), (int)System.Net.HttpStatusCode.OK)] public async Task ExportAsync([FromRoute] int idWell, CancellationToken token = default) {