Skip to content

Самодаунгрейд и самоблокировка через форму изменения пользователя #95

Closed

Description

@vladcheck

Что

В UserUpdateFormController нет RBAC: админ может снять роль/активность сам себе (ADMIN->USER, enabled=false себе), self-delete защищён, а self-downgrade — нет. Продуктовое решение: запретить или подтвердить особым диалогом.

Найдено мозгоштурмом RBAC.

Part of #29

Решения (гриль)

  • Запрет симметричен самоудалению: админ не может снять себе роль (уход с ADMIN) и активность (enabled=false). Свои имя/email менять можно — это вне скоупа.
  • Механизм: гард в onSave с текстом ошибки (дизейбл полей — опциональный второй слой, не защита).
  • Независимо от Саморедактирование пользователя: продуктовое решение #96: разные вопросы, не блокируемся.

Definition of Done

  • onSave блокирует сохранение, если цель — сам пользователь И (роль уходит с ADMIN ИЛИ активность снимается): текст ошибки, без вызова сервиса, без навигации.
  • Обновление чужого пользователя работает как раньше.
  • Обычная смена своих имени/email админом не блокируется.
  • Тесты: самодаунгрейд и самоблокировка заблокированы, чужие обновления зелёные; весь сьют, spotless, checkstyle чистые.
  • Соглашения: русские названия, Allure-разметка, только WaitForAsyncUtils.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

ready-for-agentFully specified, ready for an AFK agent

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions