Add invite links with admin-configurable config creation limits.

Admins can create shareable links that allow redeeming a VPN config a set number of times (or unlimited).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
orohi
2026-07-26 01:23:16 +03:00
co-authored by Cursor
parent 5386c4d40e
commit 7b3d8aac34
11 changed files with 1197 additions and 0 deletions
+36
View File
@@ -1,6 +1,7 @@
{
"nav_servers": "Серверы",
"nav_users": "Пользователи",
"nav_invites": "Ссылки",
"nav_settings": "Настройки",
"nav_connections": "Подключения",
"nav_logout": "Выход",
@@ -196,6 +197,41 @@
"guest_not_found": "404 Не найдено",
"guest_not_found_desc": "Гостевой доступ отключён или ссылка неверна.",
"wrong_guest_password": "Неверный пароль",
"invites_title": "Ссылки для конфигов",
"invites_hint": "Создавайте ссылки для раздачи. По ссылке можно создать VPN-конфиг — сколько раз, указываете вы.",
"invites_empty": "Ссылок пока нет",
"invites_empty_desc": "Создайте ссылку и отправьте её — регистрация не нужна.",
"invite_create": "Создать ссылку",
"invite_edit": "Редактировать ссылку",
"invite_active": "Активна",
"invite_expired": "Истекла",
"invite_exhausted": "Лимит исчерпан",
"invite_uses": "Использований",
"invite_name_label": "Название ссылки",
"invite_max_uses_label": "Сколько конфигов",
"invite_max_uses_hint": "Сколько раз можно создать конфиг по этой ссылке. 0 = без лимита.",
"invite_user_label": "Пользователь для хранения",
"invite_user_hint": "Созданные конфиги привязываются к этому пользователю панели.",
"invite_user_required": "Выберите пользователя для хранения конфигов",
"invite_password_label": "Пароль (опционально)",
"invite_expires_label": "Срок действия (опционально)",
"invite_clear_expires": "Убрать срок действия",
"invite_note_label": "Заметка (только админ)",
"invite_note_placeholder": "Внутренний комментарий",
"invite_reset_used": "Сбросить счётчик использований",
"invite_created": "Ссылка создана (URL скопирован)",
"invite_updated": "Ссылка обновлена",
"invite_deleted": "Ссылка удалена",
"invite_delete_confirm": "Удалить эту ссылку?",
"invite_public_title": "Приглашение",
"invite_public_subtitle": "Получите VPN-конфиг по ссылке",
"invite_protected_desc": "Эта ссылка защищена паролем.",
"invite_get_config_hint": "Каждое нажатие создаёт новый конфиг и тратит одно использование",
"invite_uses_left": "Осталось использований: {}",
"invite_uses_left_unlimited": "Уже создано: {} (без лимита)",
"invite_not_found": "404 Не найдено",
"invite_not_found_desc": "Ссылка неверна или была удалена.",
"wrong_invite_password": "Неверный пароль",
"public_link_label": "Публичная ссылка",
"disabled": "Отключён",
"out_of": "Из",