using Ban.Sdaid.Notation.Documents;
using Ban.Sdaid.Icd;
namespace Ban.Sdaid.Icd.Ui.Pages
{
/// <summary>Экран «Доступ запрещён» — куда уводят гард прав и ответ 403.</summary>
public class AccessDeniedPage : IPageDocument, IFolder<UiFolder>
{
public string Name => "Доступ запрещён";
public static string _refName = "экран «Доступ запрещён»";
public string Description =>
@"Куда попадает пользователь, у которого нет права на маршрут или операцию: гард прав и ответ 403 уводят сюда. Даёт выход из тупика. Маршрут /access-denied.";
public string Version => "0.1";
public string Status => "draft";
public string[] Comments => new string[0];
public static string S1_Purpose = $"""
## Назначение
Пользователь **аутентифицирован, но не имеет права** на запрошенный маршрут или операцию. Сюда
уводят гард прав (`ClaimGuard`) и ответ `403` от бэкенда
({nameof(Ban.Sdaid.Icd.Arch.Tech.Angular.ADR_UI_011_Claims)},
{nameof(Ban.Sdaid.Icd.Arch.Tech.Angular.ADR_UI_010_Auth)}). Сессию при этом **не** очищаем: запрещено
— не то же самое, что не аутентифицирован.
""";
public static string S2_Behavior = """
## Поведение
Экран объясняет, что доступа нет, и даёт выход из тупика:
- **«На главную»** — на первый доступный пользователю раздел;
- **«Войти под другим пользователем»** — выход (`/logout`) и вход заново.
Без этих кнопок пользователь без прав на стартовую страницу оказался бы заперт. Локализация
текста «нужно право …» — открытый вопрос (ADR-UI-011).
""";
}
}