Endpoint: GetUserProfile

API-контракт Версия: 0.1 draft

Профиль текущего пользователя для инициализации UI: ФИО, логин и UI-claims (ключ icd/ui). Пользователь определяется по токену. Поведение — GetUserProfileHandler.

⟨/⟩ Исходник

1. Транспорт

GET /api/Auth/GetUserProfile — параметров нет: пользователь определяется по токену. Требует аутентификации. Фронт зовёт его при старте (после наличия токена), чтобы построить меню/действия по правам.

В Payload.Claims отдаются только UI-claims (значения ключа icd/ui); ключи cqrs/* фронту не нужны и не передаются. Суперпользователю приходит */*.

2. Endpoint

/// <summary>Endpoint выдачи профиля.</summary>
public class GetUserProfileEndpoint
{
    public GetUserProfileQuery? Input { get; set; }
    public GetUserProfileResult? Output { get; set; }
}

3. Query

/// <summary>Запрос профиля (без параметров — пользователь по токену).</summary>
public class GetUserProfileQuery : BasedQuery
{
}

4. Result

/// <summary>Результат — профиль в поле Payload.</summary>
public class GetUserProfileResult : BasedResult
{
    public UserProfilePayload? Payload { get; init; }
}

5. Payload

/// <summary>Профиль текущего пользователя.</summary>
public class UserProfilePayload
{
    public Guid UserId { get; init; }

    /// <summary>ФИО пользователя.</summary>
    public string FullName { get; init; } = "";

    /// <summary>Логин.</summary>
    public string Login { get; init; } = "";

    /// <summary>UI-claims (значения ключа icd/ui) — по ним фронт скрывает недоступное.</summary>
    public string[] Claims { get; init; } = new string[0];
}