Роли ADMIN и USER, User panel и Admin panel #33

Merged
Liosha84 merged 1 commits from feat/roles-panels into master 2026-11-07 20:20:35 +01:00
Owner

Владелец 2026-11-07: «добавь роли админ и юзер, и две панели юзер и админ; предустановленный пользователь admin имеет роль админа и может давать другим роли» + «не из таблицы ящиков, а из таблицы пользователей».

Роли

  • ADMIN = users.is_admin (V8); USER — все остальные.
  • Встроенный администратор (mailserver.admins, по умолчанию admin@<домен>) — всегда ADMIN, при старте получает роль и в базе, снять нельзя.
  • PUT /api/admin/mailboxes/{id}/role {"role":"ADMIN"|"USER"} — только ADMIN; свою роль менять нельзя; общий ящик (без своего входа) не может быть ADMIN. В лог — кто кому дал.
  • MailboxView.role, builtIn.

Панели

  • User panel (/settings, у всех): профиль, пароль, хранилище, вид, MY MAILBOXES.
  • Admin panel (/admin, ссылка в меню только у ADMIN): USERS — таблица пользователей (логины, без общих ящиков): роль, статус, MAKE ADMIN / MAKE USER с подтверждением; затем MAILBOXES и LISTS (перенесены из Settings). Бейдж ADMIN из таблицы ящиков убран — роли только в USERS.

Проверено: backend 11/11 в MailboxAdminControllerTest (новый тест ролей), весь backend зелёный; ng build; скриншот Admin panel (локальный UI с API prod, временный admin-ящик qa-alpha@ создан и удалён; колонка Role пустая — на prod ещё старый сервер).

Пара: Jambotron PR — синхронизация не снимает роль, выданную здесь.

α

🤖 Generated with Claude Code

Владелец 2026-11-07: «добавь роли админ и юзер, и две панели юзер и админ; предустановленный пользователь admin имеет роль админа и может давать другим роли» + «не из таблицы ящиков, а из таблицы пользователей». **Роли** - ADMIN = `users.is_admin` (V8); USER — все остальные. - Встроенный администратор (`mailserver.admins`, по умолчанию `admin@<домен>`) — всегда ADMIN, при старте получает роль и в базе, снять нельзя. - `PUT /api/admin/mailboxes/{id}/role {"role":"ADMIN"|"USER"}` — только ADMIN; свою роль менять нельзя; общий ящик (без своего входа) не может быть ADMIN. В лог — кто кому дал. - `MailboxView.role`, `builtIn`. **Панели** - **User panel** (`/settings`, у всех): профиль, пароль, хранилище, вид, MY MAILBOXES. - **Admin panel** (`/admin`, ссылка в меню только у ADMIN): **USERS** — таблица пользователей (логины, без общих ящиков): роль, статус, MAKE ADMIN / MAKE USER с подтверждением; затем MAILBOXES и LISTS (перенесены из Settings). Бейдж ADMIN из таблицы ящиков убран — роли только в USERS. **Проверено:** backend 11/11 в `MailboxAdminControllerTest` (новый тест ролей), весь backend зелёный; `ng build`; скриншот Admin panel (локальный UI с API prod, временный admin-ящик qa-alpha@ создан и удалён; колонка Role пустая — на prod ещё старый сервер). Пара: Jambotron PR — синхронизация не снимает роль, выданную здесь. α 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Liosha84 added 1 commit 2026-11-07 20:20:12 +01:00
Роли ADMIN и USER, User panel и Admin panel
continuous-integration/drone/pr Build is passing
cf87b60b38
- Роль ADMIN = users.is_admin; встроенный администратор (mailserver.admins, по
  умолчанию admin@) всегда ADMIN и получает роль в базе при старте.
- PUT /api/admin/mailboxes/{id}/role {ADMIN|USER}: только ADMIN; не свою, не
  встроенного, общий ящик не может быть ADMIN.
- Admin panel (/admin, только ADMIN): USERS (логины и роли, MAKE ADMIN / MAKE USER),
  MAILBOXES, LISTS. User panel (/settings): профиль, пароль, хранилище, вид, мои ящики.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Liosha84 merged commit 910a028612 into master 2026-11-07 20:20:35 +01:00
Sign in to join this conversation.