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
@@ -1648,6 +1648,8 @@ export interface components {
|
||||
username: string;
|
||||
display_name: string | null;
|
||||
role: components["schemas"]["Role"];
|
||||
/** @description Может рассматривать очередь на добавление. Не следует из роли и может быть у нескольких людей сразу */
|
||||
reviews_uploads: boolean;
|
||||
locale: string;
|
||||
ui_prefs: components["schemas"]["UiPrefs"];
|
||||
must_change_password: boolean;
|
||||
@@ -1675,6 +1677,8 @@ export interface components {
|
||||
username: string;
|
||||
display_name: string | null;
|
||||
role: components["schemas"]["Role"];
|
||||
/** @description Может рассматривать очередь на добавление. Не следует из роли и может быть у нескольких людей сразу */
|
||||
reviews_uploads: boolean;
|
||||
locale: string;
|
||||
is_blocked: boolean;
|
||||
must_change_password: boolean;
|
||||
@@ -1692,6 +1696,8 @@ export interface components {
|
||||
username: string;
|
||||
display_name?: string;
|
||||
role: components["schemas"]["Role"];
|
||||
/** @description Сразу выдать аудит загрузок. Может задать только админ */
|
||||
reviews_uploads?: boolean;
|
||||
};
|
||||
CreatedUser: {
|
||||
user: components["schemas"]["AdminUser"];
|
||||
@@ -1703,6 +1709,8 @@ export interface components {
|
||||
display_name?: string;
|
||||
role?: components["schemas"]["Role"];
|
||||
is_blocked?: boolean;
|
||||
/** @description Выдать или забрать аудит загрузок. Может менять только админ, в том числе у себя */
|
||||
reviews_uploads?: boolean;
|
||||
};
|
||||
TemporaryPassword: {
|
||||
temporary_password: string;
|
||||
|
||||
@@ -11,6 +11,7 @@ const user = {
|
||||
ui_prefs: {},
|
||||
must_change_password: false,
|
||||
must_change_credentials: false,
|
||||
reviews_uploads: false,
|
||||
created_at: '2026-01-01T00:00:00Z',
|
||||
};
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"users": {
|
||||
"title": "Users",
|
||||
"subtitle": "Create users and moderators, manage roles, reset passwords, block accounts",
|
||||
"subtitle": "Create users and moderators, manage roles, upload review, reset passwords, block accounts",
|
||||
"create": "Create user",
|
||||
"search": "Name or username",
|
||||
"all": "All",
|
||||
@@ -20,6 +20,9 @@
|
||||
"block": "Block",
|
||||
"unblock": "Unblock",
|
||||
"make_role": "Make {{role}}",
|
||||
"review_uploads": "Upload review",
|
||||
"grant_review": "Grant upload review",
|
||||
"revoke_review": "Revoke upload review",
|
||||
"delete": "Delete",
|
||||
"delete_confirm": "Delete {{username}}? Their history and likes will be lost.",
|
||||
"block_confirm": "Block {{username}}? All their sessions will end.",
|
||||
@@ -36,6 +39,8 @@
|
||||
"username_hint": "Latin letters, digits, \".\", \"_\", \"-\"",
|
||||
"display_name": "Name",
|
||||
"role": "Role",
|
||||
"review_uploads": "Upload review",
|
||||
"review_uploads_hint": "They can review the upload queue. This is not a role: several people can have it, and an admin might not.",
|
||||
"password_note": "The server will generate a password and show it once.",
|
||||
"submit": "Create"
|
||||
},
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"users": {
|
||||
"title": "Пользователи",
|
||||
"subtitle": "Создание пользователей и модераторов, роли, сброс пароля, блокировка",
|
||||
"subtitle": "Создание пользователей и модераторов, роли, аудит загрузок, сброс пароля, блокировка",
|
||||
"create": "Создать пользователя",
|
||||
"search": "Имя или логин",
|
||||
"all": "Все",
|
||||
@@ -20,6 +20,9 @@
|
||||
"block": "Заблокировать",
|
||||
"unblock": "Разблокировать",
|
||||
"make_role": "Сделать: {{role}}",
|
||||
"review_uploads": "Аудит загрузок",
|
||||
"grant_review": "Дать аудит загрузок",
|
||||
"revoke_review": "Забрать аудит загрузок",
|
||||
"delete": "Удалить",
|
||||
"delete_confirm": "Удалить {{username}}? Его история и лайки пропадут.",
|
||||
"block_confirm": "Заблокировать {{username}}? Все его сессии завершатся.",
|
||||
@@ -36,6 +39,8 @@
|
||||
"username_hint": "Латинские буквы, цифры, «.», «_», «-»",
|
||||
"display_name": "Имя",
|
||||
"role": "Роль",
|
||||
"review_uploads": "Аудит загрузок",
|
||||
"review_uploads_hint": "Сможет рассматривать очередь. Это не роль: можно выдать нескольким людям, у админа её может не быть.",
|
||||
"password_note": "Пароль сгенерирует сервер и покажет один раз.",
|
||||
"submit": "Создать"
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user