/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/Gridient.Core/Controllers/AuthorizationController.cs
58 строк
2 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
using Gridient.Core.Features.Authorization.Commands; using MediatR; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Gridient.Core.Controllers { /// <summary> /// Контроллер для проверки авторизации операций /// </summary> [ApiController] [Authorize] public class AuthorizationController(IMediator mediator) : ControllerBase { private readonly IMediator _mediator = mediator; /// <summary> /// Проверяет авторизацию для массива контекстов /// </summary> [HttpPost] [Route("api/authorization/check")] public async Task<ActionResult<AuthorizationCheckResponse>> CheckAuthorization( [FromBody] AuthorizationCheckRequest request, CancellationToken cancellationToken) { var command = new CheckAuthorizationCommand(request); var response = await _mediator.Send(command, cancellationToken); return Ok(response); } } /// <summary> /// Запрос на проверку авторизации /// </summary> public class AuthorizationCheckRequest { public List<AuthorizationContextDto> Contexts { get; set; } = new(); } /// <summary> /// DTO для контекста авторизации (без UserLogin и ClaimsPrincipal) /// </summary> public class AuthorizationContextDto { public string ResourceType { get; set; } = null!; public string Operation { get; set; } = null!; public string? ResourceId { get; set; } public Dictionary<string, object>? AdditionalData { get; set; } } /// <summary> /// Ответ с результатами проверки авторизации /// </summary> public class AuthorizationCheckResponse { public List<Gridient.Core.Authorization.AuthorizationResult> Results { get; set; } = new(); } }