Implement Owner Panel features and maintenance mode handling
- Introduced the Owner Panel with new routes and UI components for managing guilds, user blacklists, feature flags, and bot presence. - Added maintenance mode functionality to prevent non-owner users from executing commands during maintenance periods. - Enhanced localization with new keys for Owner Panel features in both English and German. - Updated job processing to include a presence refresh job, ensuring the bot's status is regularly updated. - Improved environment configuration to support owner user IDs for access control.
This commit is contained in:
@@ -518,7 +518,97 @@
|
||||
"themeDark": "Dunkel",
|
||||
"themeLight": "Hell",
|
||||
"logout": "Abmelden",
|
||||
"loggingOut": "Meldet ab…"
|
||||
"loggingOut": "Meldet ab…",
|
||||
"ownerPanel": "Owner-Panel"
|
||||
},
|
||||
"owner": {
|
||||
"nav": {
|
||||
"title": "Owner",
|
||||
"backToDashboard": "Zum Dashboard",
|
||||
"overview": "Übersicht",
|
||||
"guilds": "Server",
|
||||
"users": "User-Blacklist",
|
||||
"flags": "Feature-Flags",
|
||||
"presence": "Präsenz",
|
||||
"team": "Team",
|
||||
"jobs": "Jobs",
|
||||
"changelog": "Changelog",
|
||||
"audit": "Audit"
|
||||
},
|
||||
"common": {
|
||||
"empty": "Keine Einträge.",
|
||||
"noteOptional": "Notiz (optional)"
|
||||
},
|
||||
"overview": {
|
||||
"title": "Owner-Übersicht",
|
||||
"subtitle": "Globale Bot-Kennzahlen und letzte Owner-Aktionen.",
|
||||
"guilds": "Server",
|
||||
"blacklistedUsers": "Gesperrte User",
|
||||
"blacklistedGuilds": "Gesperrte Server",
|
||||
"maintenance": "Wartungsmodus",
|
||||
"uptime": "WebUI-Uptime",
|
||||
"recentAudit": "Letzte Owner-Aktivität",
|
||||
"emptyAudit": "Noch keine Owner-Aktionen.",
|
||||
"viewAudit": "Audit öffnen",
|
||||
"changelog": "Changelog",
|
||||
"emptyChangelog": "Noch keine Changelog-Einträge.",
|
||||
"manageChangelog": "Changelog verwalten"
|
||||
},
|
||||
"guilds": {
|
||||
"title": "Server-Verwaltung",
|
||||
"subtitle": "Server suchen, blacklisten oder den Bot entfernen.",
|
||||
"search": "Server-ID suchen…",
|
||||
"blacklisted": "Blacklist",
|
||||
"blacklist": "Blacklisten",
|
||||
"unblacklist": "Blacklist entfernen",
|
||||
"leave": "Server verlassen",
|
||||
"leaveConfirm": "Bot wirklich von diesem Server entfernen?"
|
||||
},
|
||||
"users": {
|
||||
"title": "User-Blacklist",
|
||||
"subtitle": "Global gesperrte Discord-User (Bot ignoriert sie überall).",
|
||||
"userIdPlaceholder": "Discord User-ID"
|
||||
},
|
||||
"flags": {
|
||||
"title": "Feature-Flags",
|
||||
"subtitle": "Module global steuern und Rollouts konfigurieren.",
|
||||
"keyPlaceholder": "Flag-Key (z. B. new.module)",
|
||||
"rollout": "Rollout %"
|
||||
},
|
||||
"presence": {
|
||||
"title": "Bot-Präsenz",
|
||||
"subtitle": "Status, Aktivität und Wartungsmodus.",
|
||||
"status": "Status",
|
||||
"activityType": "Aktivitätstyp",
|
||||
"activityText": "Aktivitätstext",
|
||||
"rotating": "Rotierende Nachrichten (eine pro Zeile)",
|
||||
"maintenanceMode": "Wartungsmodus aktiv",
|
||||
"maintenanceMessage": "Wartungsnachricht"
|
||||
},
|
||||
"team": {
|
||||
"title": "Team",
|
||||
"subtitle": "Weitere Owner/Admins mit abgestuften Rechten.",
|
||||
"bootstrap": "Bootstrap-Owner (OWNER_USER_IDS)",
|
||||
"noBootstrap": "Keine Bootstrap-Owner in OWNER_USER_IDS gesetzt."
|
||||
},
|
||||
"jobs": {
|
||||
"title": "Jobs & Migrationen",
|
||||
"subtitle": "BullMQ-Queues und Prisma-Migrationsstatus.",
|
||||
"queues": "Queues",
|
||||
"migrations": "Migrationen",
|
||||
"retryFailed": "Fehlgeschlagene neu starten"
|
||||
},
|
||||
"changelog": {
|
||||
"title": "Changelog",
|
||||
"subtitle": "Versionshinweise für das Dashboard.",
|
||||
"version": "Version",
|
||||
"titleField": "Titel",
|
||||
"body": "Inhalt"
|
||||
},
|
||||
"audit": {
|
||||
"title": "Owner-Audit",
|
||||
"subtitle": "Alle Owner-Aktionen im globalen Audit-Log."
|
||||
}
|
||||
},
|
||||
"serverSwitcher": {
|
||||
"switchServer": "Server wechseln",
|
||||
|
||||
@@ -518,7 +518,97 @@
|
||||
"themeDark": "Dark",
|
||||
"themeLight": "Light",
|
||||
"logout": "Log out",
|
||||
"loggingOut": "Logging out…"
|
||||
"loggingOut": "Logging out…",
|
||||
"ownerPanel": "Owner panel"
|
||||
},
|
||||
"owner": {
|
||||
"nav": {
|
||||
"title": "Owner",
|
||||
"backToDashboard": "Back to dashboard",
|
||||
"overview": "Overview",
|
||||
"guilds": "Guilds",
|
||||
"users": "User blacklist",
|
||||
"flags": "Feature flags",
|
||||
"presence": "Presence",
|
||||
"team": "Team",
|
||||
"jobs": "Jobs",
|
||||
"changelog": "Changelog",
|
||||
"audit": "Audit"
|
||||
},
|
||||
"common": {
|
||||
"empty": "No entries.",
|
||||
"noteOptional": "Note (optional)"
|
||||
},
|
||||
"overview": {
|
||||
"title": "Owner overview",
|
||||
"subtitle": "Global bot metrics and recent owner actions.",
|
||||
"guilds": "Guilds",
|
||||
"blacklistedUsers": "Blacklisted users",
|
||||
"blacklistedGuilds": "Blacklisted guilds",
|
||||
"maintenance": "Maintenance mode",
|
||||
"uptime": "WebUI uptime",
|
||||
"recentAudit": "Recent owner activity",
|
||||
"emptyAudit": "No owner actions yet.",
|
||||
"viewAudit": "Open audit",
|
||||
"changelog": "Changelog",
|
||||
"emptyChangelog": "No changelog entries yet.",
|
||||
"manageChangelog": "Manage changelog"
|
||||
},
|
||||
"guilds": {
|
||||
"title": "Guild management",
|
||||
"subtitle": "Search guilds, blacklist them, or leave with the bot.",
|
||||
"search": "Search guild ID…",
|
||||
"blacklisted": "Blacklisted",
|
||||
"blacklist": "Blacklist",
|
||||
"unblacklist": "Remove blacklist",
|
||||
"leave": "Leave guild",
|
||||
"leaveConfirm": "Really remove the bot from this guild?"
|
||||
},
|
||||
"users": {
|
||||
"title": "User blacklist",
|
||||
"subtitle": "Globally blocked Discord users (bot ignores them everywhere).",
|
||||
"userIdPlaceholder": "Discord user ID"
|
||||
},
|
||||
"flags": {
|
||||
"title": "Feature flags",
|
||||
"subtitle": "Control modules globally and configure rollouts.",
|
||||
"keyPlaceholder": "Flag key (e.g. new.module)",
|
||||
"rollout": "Rollout %"
|
||||
},
|
||||
"presence": {
|
||||
"title": "Bot presence",
|
||||
"subtitle": "Status, activity, and maintenance mode.",
|
||||
"status": "Status",
|
||||
"activityType": "Activity type",
|
||||
"activityText": "Activity text",
|
||||
"rotating": "Rotating messages (one per line)",
|
||||
"maintenanceMode": "Maintenance mode enabled",
|
||||
"maintenanceMessage": "Maintenance message"
|
||||
},
|
||||
"team": {
|
||||
"title": "Team",
|
||||
"subtitle": "Additional owners/admins with graded permissions.",
|
||||
"bootstrap": "Bootstrap owners (OWNER_USER_IDS)",
|
||||
"noBootstrap": "No bootstrap owners set in OWNER_USER_IDS."
|
||||
},
|
||||
"jobs": {
|
||||
"title": "Jobs & migrations",
|
||||
"subtitle": "BullMQ queues and Prisma migration status.",
|
||||
"queues": "Queues",
|
||||
"migrations": "Migrations",
|
||||
"retryFailed": "Retry failed"
|
||||
},
|
||||
"changelog": {
|
||||
"title": "Changelog",
|
||||
"subtitle": "Release notes for the dashboard.",
|
||||
"version": "Version",
|
||||
"titleField": "Title",
|
||||
"body": "Body"
|
||||
},
|
||||
"audit": {
|
||||
"title": "Owner audit",
|
||||
"subtitle": "All owner actions in the global audit log."
|
||||
}
|
||||
},
|
||||
"serverSwitcher": {
|
||||
"switchServer": "Switch server",
|
||||
|
||||
Reference in New Issue
Block a user