/
ibavca1
/
A4.ControlPost
Обзор
Документация
Войти
/
ibavca1
/
A4.ControlPost
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/A4.ControlPost.Server/Controllers/UsersController.cs
57 строк
2 KB
ibavca
Удаление кеша
17 май 2026, 08:13
17 май 2026, 08:13
b25f212
Код
Авторство
О чём код?
// UsersController.cs using System.Diagnostics; using System.Security.Claims; using A4.ControlPost.Core.Models; using A4.ControlPost.Server.Data; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; namespace A4.ControlPost.Server.Controllers; [Route("api/[controller]")] [ApiController] public class UsersController : ControllerBase { private readonly AppDbContext _db; public UsersController(AppDbContext db) { _db = db; } /// <summary> /// Получить список всех пользователей /// </summary> [HttpGet] public async Task<IActionResult> GetUsers() { var role = User.FindFirst(ClaimTypes.Role)?.Value; if (role != "admin") return Forbid("Только администратор может просматривать список"); var users = await _db.Users.ToListAsync(); return Ok(users); } /// <summary> /// Получить пользователя по ID /// </summary> [HttpGet("{id}")] public async Task<IActionResult> GetUser(int id) { var user = await _db.Users.FindAsync(id); if (user == null) return NotFound(new { Message = "Пользователь не найден" }); var userIdClaim = User.FindFirst(ClaimTypes.NameIdentifier)?.Value; var role = User.FindFirst(ClaimTypes.Role)?.Value; if (role != "admin" && userIdClaim != user.Id.ToString()) return Forbid(); return Ok(user); } }