feat(admin): transfer user accounts and show local cover coverage
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 1m17s
ci / ts / ts (packages + web) (push) Successful in 3m13s
ci / api / api (push) Successful in 59s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m31s
ci / db / db (push) Successful in 2m50s

This commit is contained in:
mrleo1nid committed 2026-10-23 02:17:06 +03:00
1 parent 0a4cd4bff1
commit f1528de948
22 files changed
+1661 -313

No files matched your search

+15
View File
@@ -37,6 +37,17 @@
"grant_updates": "Grant update management",
"revoke_updates": "Revoke update management"
},
"transfer": {
"export": "Export users",
"import": "Import users",
"apply": "Import",
"description": "Transfer accounts, roles and access permissions with existing passwords. Recommendations, history, likes and sessions are excluded. Existing usernames will be skipped without changes.",
"sensitive": "The JSON file contains password hashes. Keep it in a secure location.",
"file": "Users file (.json)",
"preview": "Accounts in file: {{count}}",
"invalid": "Invalid file. Select a Pipu JSON export, version 1, up to 16 MiB and 10000 users.",
"result": "Created: {{count}}. Existing accounts skipped: {{skipped}}."
},
"create": {
"title": "New user",
"username": "Username",
@@ -64,6 +75,8 @@
"empty": "No entries yet",
"more": "Show more",
"actions": {
"users.export": "Users exported",
"users.import": "Users imported",
"user.username_change": "Username changed",
"user.bootstrap_create": "Initial administrator created",
"user.bootstrap_credentials": "Administrator credentials set",
@@ -79,6 +92,8 @@
}
},
"sources": {
"cover_files": "Local covers: {{count}} of {{total}} files",
"cover_pending": "Albums awaiting processing: {{count}}",
"title": "Storage",
"subtitle": "Where the server takes music from: a folder on the server or NFS",
"add": "Add storage",
+1
View File
@@ -26,6 +26,7 @@
"forbidden": "You don't have permission to do this"
},
"validation": {
"user_archive_invalid": "Invalid user file: check the version, usernames, roles and password hashes. No changes were saved.",
"password_too_short": "The password must be at least {{min}} characters",
"password_too_long": "The password must be at most {{max}} characters",
"password_same_as_username": "The password must not match the username",
+15
View File
@@ -37,6 +37,17 @@
"grant_updates": "Дать управление обновлениями",
"revoke_updates": "Забрать управление обновлениями"
},
"transfer": {
"export": "Экспорт пользователей",
"import": "Импорт пользователей",
"apply": "Импортировать",
"description": "Перенос учётных записей, ролей и прав доступа с сохранением паролей. Рекомендации, история, лайки и сессии не переносятся. Существующие логины будут пропущены без изменений.",
"sensitive": "JSON-файл содержит хэши паролей. Храните его в защищённом месте.",
"file": "Файл пользователей (.json)",
"preview": "Учётных записей в файле: {{count}}",
"invalid": "Некорректный файл. Выберите экспорт Pipu в формате JSON, версия 1, до 16 MiB и 10000 пользователей.",
"result": "Создано: {{count}}. Пропущено существующих: {{skipped}}."
},
"create": {
"title": "Новый пользователь",
"username": "Логин",
@@ -64,6 +75,8 @@
"empty": "Записей пока нет",
"more": "Показать ещё",
"actions": {
"users.export": "Экспортированы пользователи",
"users.import": "Импортированы пользователи",
"user.username_change": "Изменён логин",
"user.bootstrap_create": "Создан стартовый администратор",
"user.bootstrap_credentials": "Заданы учётные данные администратора",
@@ -79,6 +92,8 @@
}
},
"sources": {
"cover_files": "Локальные обложки: {{count}} из {{total}} файлов",
"cover_pending": "Альбомов ожидают обработки: {{count}}",
"title": "Хранилища",
"subtitle": "Откуда сервер берёт музыку: папка на диске сервера или NFS",
"add": "Подключить хранилище",
+1
View File
@@ -26,6 +26,7 @@
"forbidden": "Недостаточно прав для этого действия"
},
"validation": {
"user_archive_invalid": "Некорректный файл пользователей: проверьте версию, логины, роли и хэши паролей. Изменения не сохранены.",
"password_too_short": "Пароль должен быть не короче {{min}} символов",
"password_too_long": "Пароль должен быть не длиннее {{max}} символов",
"password_same_as_username": "Пароль не должен совпадать с логином",