feat(auth): make upload review a separate grant instead of an admin privilege
Reviewing the upload queue is now a per-user flag (reviews_uploads), not part of the admin role: several people can hold it, a moderator can have it, and an admin may not. Only admins grant or revoke it; existing admins keep it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
066ba24834
commit
74da457362
27 files changed
+503
-319
No files matched your search
@@ -24,9 +24,13 @@
|
||||
| Хранилища, сканирование, переиндексация | — | — | ✅ |
|
||||
| Статус библиотеки (только просмотр) | — | ✅ | ✅ |
|
||||
| Предлагать треки (загрузка в очередь), видеть свои предложения | — | ✅ | ✅ |
|
||||
| Рассматривать очередь, одобрять / отклонять, править метаданные | — | — | ✅ |
|
||||
| Лимит очереди, целевое хранилище, шаблон раскладки | — | — | ✅ |
|
||||
| Статус рекомендательной системы, аудит | — | — | ✅ |
|
||||
| Выдать / забрать аудит загрузок | — | — | ✅ |
|
||||
|
||||
**Аудит загрузок** (рассматривать очередь, одобрять / отклонять, править метаданные) — не строка матрицы, а
|
||||
отдельный флаг пользователя `reviews_uploads`, не зависящий от роли: его может иметь кто угодно, сразу несколько
|
||||
человек, а у админа его может не быть. Проверка — `Principal.Allowed(PermReviewUploads)`.
|
||||
|
||||
Реализация: в Go — политики в `internal/auth/policy.go` вида `CanManageUser(actor, target, action) bool`,
|
||||
проверяются в сервисном слое (не только в middleware), покрываются табличными тестами по этой матрице.
|
||||
|
||||
Reference in new issue
Block a user