Интеграция системы мониторинга банов

This commit is contained in:
PEDZEO
2026-01-16 16:03:51 +03:00
parent b1a5e17c6e
commit 34c128fd87
6 changed files with 1358 additions and 4 deletions

View File

@@ -439,7 +439,8 @@
"apps": "Apps",
"wheel": "Wheel",
"tariffs": "Tariffs",
"servers": "Servers"
"servers": "Servers",
"banSystem": "Ban Monitoring"
},
"panel": {
"title": "Admin Panel",
@@ -450,7 +451,8 @@
"appsDesc": "Manage connection apps",
"wheelDesc": "Configure fortune wheel and prizes",
"tariffsDesc": "Manage tariff plans",
"serversDesc": "Configure VPN servers"
"serversDesc": "Configure VPN servers",
"banSystemDesc": "Ban monitoring and violations"
},
"wheel": {
"title": "Fortune Wheel Settings",
@@ -744,6 +746,173 @@
"noTariffs": "No tariffs"
}
},
"banSystem": {
"title": "Ban Monitoring",
"subtitle": "BedolagaBan system management",
"notConfigured": "Ban system is not configured",
"notConfiguredDesc": "Set BAN_SYSTEM_API_URL and BAN_SYSTEM_API_TOKEN in configuration",
"loadError": "Failed to load data",
"tabs": {
"dashboard": "Dashboard",
"users": "Users",
"punishments": "Bans",
"nodes": "Nodes",
"agents": "Agents",
"violations": "Violations"
},
"dashboard": {
"totalUsers": "Total Users",
"activeUsers": "Active Users",
"usersOverLimit": "Over Limit",
"totalRequests": "Total Requests",
"totalPunishments": "Total Punishments",
"activePunishments": "Active Bans",
"nodesOnline": "Nodes Online",
"agentsOnline": "Agents Online",
"panelConnected": "Panel Connected",
"panelDisconnected": "Panel Disconnected",
"uptime": "Uptime"
},
"users": {
"title": "Users",
"searchPlaceholder": "Search by email...",
"email": "Email",
"uniqueIps": "Unique IPs",
"requests": "Requests",
"limit": "Limit",
"status": "Status",
"lastSeen": "Last Seen",
"overLimit": "Over Limit",
"normal": "Normal",
"noLimit": "No Limit",
"noUsers": "No users found",
"viewDetails": "View Details",
"filter": {
"all": "All",
"overLimit": "Over Limit",
"normal": "Normal"
}
},
"userDetail": {
"title": "User Details",
"email": "Email",
"uniqueIps": "Unique IPs",
"totalRequests": "Total Requests",
"limit": "Device Limit",
"status": "Status",
"networkType": "Network Type",
"ipHistory": "IP History",
"recentRequests": "Recent Requests",
"ip": "IP Address",
"firstSeen": "First Seen",
"lastSeen": "Last Seen",
"node": "Node",
"requestCount": "Requests",
"country": "Country",
"city": "City",
"timestamp": "Timestamp",
"sourceIp": "Source IP",
"destination": "Destination",
"port": "Port",
"protocol": "Protocol",
"action": "Action",
"noIps": "No IP data",
"noRequests": "No request data",
"ban": "Ban",
"close": "Close"
},
"punishments": {
"title": "Active Bans",
"username": "User",
"reason": "Reason",
"punishedAt": "Banned At",
"enableAt": "Unban At",
"ipCount": "IPs",
"limit": "Limit",
"node": "Node",
"actions": "Actions",
"unban": "Unban",
"noPunishments": "No active bans",
"unbanConfirm": "Unban user {{username}}?",
"unbanSuccess": "User unbanned",
"unbanError": "Unban failed",
"history": "Ban History",
"searchHistory": "Search history...",
"noHistory": "No history found"
},
"banModal": {
"title": "Ban User",
"username": "Username",
"usernamePlaceholder": "Enter username",
"duration": "Duration (minutes)",
"durationPlaceholder": "Enter duration in minutes",
"reason": "Reason",
"reasonPlaceholder": "Enter ban reason (optional)",
"cancel": "Cancel",
"ban": "Ban",
"success": "User banned",
"error": "Ban failed"
},
"nodes": {
"title": "Nodes",
"name": "Name",
"address": "Address",
"status": "Status",
"lastSeen": "Last Seen",
"usersCount": "Users",
"online": "Online",
"offline": "Offline",
"noNodes": "No nodes found",
"total": "Total",
"onlineCount": "Online"
},
"agents": {
"title": "Agents",
"nodeName": "Node",
"status": "Status",
"health": "Health",
"sent": "Sent",
"dropped": "Dropped",
"batches": "Batches",
"reconnects": "Reconnects",
"failures": "Failures",
"queue": "Queue",
"dedup": "Deduplication",
"filter": "Filtering",
"lastReport": "Last Report",
"online": "Online",
"offline": "Offline",
"healthy": "Healthy",
"warning": "Warning",
"critical": "Critical",
"noAgents": "No agents found",
"summary": {
"title": "Summary",
"totalAgents": "Total Agents",
"onlineAgents": "Online",
"totalSent": "Total Sent",
"totalDropped": "Total Dropped",
"avgQueueSize": "Avg Queue Size",
"healthyCount": "Healthy",
"warningCount": "Warning",
"criticalCount": "Critical"
}
},
"violations": {
"title": "Traffic Violations",
"username": "User",
"email": "Email",
"type": "Type",
"description": "Description",
"bytesUsed": "Used",
"bytesLimit": "Limit",
"detectedAt": "Detected At",
"resolved": "Resolved",
"noViolations": "No violations found",
"yes": "Yes",
"no": "No"
}
},
"profile": {
"title": "Profile",
"accountInfo": "Account Information",

View File

@@ -439,7 +439,8 @@
"apps": "Приложения",
"wheel": "Колесо",
"tariffs": "Тарифы",
"servers": "Серверы"
"servers": "Серверы",
"banSystem": "Мониторинг банов"
},
"panel": {
"title": "Панель администратора",
@@ -450,7 +451,8 @@
"appsDesc": "Управление приложениями для подключения",
"wheelDesc": "Настройка колеса удачи и призов",
"tariffsDesc": "Управление тарифными планами",
"serversDesc": "Настройка VPN серверов"
"serversDesc": "Настройка VPN серверов",
"banSystemDesc": "Мониторинг банов и нарушений"
},
"wheel": {
"title": "Настройки колеса удачи",
@@ -744,6 +746,173 @@
"noTariffs": "Нет тарифов"
}
},
"banSystem": {
"title": "Мониторинг банов",
"subtitle": "Управление системой банов BedolagaBan",
"notConfigured": "Ban система не настроена",
"notConfiguredDesc": "Укажите BAN_SYSTEM_API_URL и BAN_SYSTEM_API_TOKEN в конфигурации",
"loadError": "Не удалось загрузить данные",
"tabs": {
"dashboard": "Статистика",
"users": "Пользователи",
"punishments": "Баны",
"nodes": "Ноды",
"agents": "Агенты",
"violations": "Нарушения"
},
"dashboard": {
"totalUsers": "Всего пользователей",
"activeUsers": "Активных пользователей",
"usersOverLimit": "Превысили лимит",
"totalRequests": "Всего запросов",
"totalPunishments": "Всего наказаний",
"activePunishments": "Активных банов",
"nodesOnline": "Нод онлайн",
"agentsOnline": "Агентов онлайн",
"panelConnected": "Панель подключена",
"panelDisconnected": "Панель отключена",
"uptime": "Аптайм"
},
"users": {
"title": "Пользователи",
"searchPlaceholder": "Поиск по email...",
"email": "Email",
"uniqueIps": "Уникальных IP",
"requests": "Запросов",
"limit": "Лимит",
"status": "Статус",
"lastSeen": "Последняя активность",
"overLimit": "Превышен лимит",
"normal": "Норма",
"noLimit": "Без лимита",
"noUsers": "Пользователи не найдены",
"viewDetails": "Подробнее",
"filter": {
"all": "Все",
"overLimit": "Превысили лимит",
"normal": "В норме"
}
},
"userDetail": {
"title": "Детали пользователя",
"email": "Email",
"uniqueIps": "Уникальных IP",
"totalRequests": "Всего запросов",
"limit": "Лимит устройств",
"status": "Статус",
"networkType": "Тип сети",
"ipHistory": "История IP",
"recentRequests": "Последние запросы",
"ip": "IP адрес",
"firstSeen": "Первое подключение",
"lastSeen": "Последнее подключение",
"node": "Нода",
"requestCount": "Запросов",
"country": "Страна",
"city": "Город",
"timestamp": "Время",
"sourceIp": "IP источника",
"destination": "Назначение",
"port": "Порт",
"protocol": "Протокол",
"action": "Действие",
"noIps": "Нет данных об IP",
"noRequests": "Нет данных о запросах",
"ban": "Забанить",
"close": "Закрыть"
},
"punishments": {
"title": "Активные баны",
"username": "Пользователь",
"reason": "Причина",
"punishedAt": "Забанен",
"enableAt": "Разбан в",
"ipCount": "IP",
"limit": "Лимит",
"node": "Нода",
"actions": "Действия",
"unban": "Разбанить",
"noPunishments": "Активных банов нет",
"unbanConfirm": "Разбанить пользователя {{username}}?",
"unbanSuccess": "Пользователь разбанен",
"unbanError": "Ошибка разбана",
"history": "История банов",
"searchHistory": "Поиск истории...",
"noHistory": "История не найдена"
},
"banModal": {
"title": "Забанить пользователя",
"username": "Username",
"usernamePlaceholder": "Введите username",
"duration": "Длительность (минуты)",
"durationPlaceholder": "Введите длительность в минутах",
"reason": "Причина",
"reasonPlaceholder": "Введите причину бана (опционально)",
"cancel": "Отмена",
"ban": "Забанить",
"success": "Пользователь забанен",
"error": "Ошибка бана"
},
"nodes": {
"title": "Ноды",
"name": "Название",
"address": "Адрес",
"status": "Статус",
"lastSeen": "Последняя активность",
"usersCount": "Пользователей",
"online": "Онлайн",
"offline": "Оффлайн",
"noNodes": "Ноды не найдены",
"total": "Всего",
"onlineCount": "Онлайн"
},
"agents": {
"title": "Агенты",
"nodeName": "Нода",
"status": "Статус",
"health": "Здоровье",
"sent": "Отправлено",
"dropped": "Отброшено",
"batches": "Пакетов",
"reconnects": "Переподключений",
"failures": "Ошибок",
"queue": "Очередь",
"dedup": "Дедупликация",
"filter": "Фильтрация",
"lastReport": "Последний отчёт",
"online": "Онлайн",
"offline": "Оффлайн",
"healthy": "Здоров",
"warning": "Предупреждение",
"critical": "Критический",
"noAgents": "Агенты не найдены",
"summary": {
"title": "Сводка",
"totalAgents": "Всего агентов",
"onlineAgents": "Онлайн",
"totalSent": "Отправлено",
"totalDropped": "Отброшено",
"avgQueueSize": "Средний размер очереди",
"healthyCount": "Здоровых",
"warningCount": "С предупреждениями",
"criticalCount": "Критических"
}
},
"violations": {
"title": "Нарушения трафика",
"username": "Пользователь",
"email": "Email",
"type": "Тип",
"description": "Описание",
"bytesUsed": "Использовано",
"bytesLimit": "Лимит",
"detectedAt": "Обнаружено",
"resolved": "Решено",
"noViolations": "Нарушений не обнаружено",
"yes": "Да",
"no": "Нет"
}
},
"profile": {
"title": "Профиль",
"accountInfo": "Информация об аккаунте",