Moderations-Panel: neue Seite /moderation für Mods und Admins
- Backend: routes/moderation.py mit GET /stats, /reports, /users, /fotos und PATCH-Endpoints für Ban/Unban und Foto-Review - Frontend: pages/moderation.js mit 4 Tabs (Übersicht, Fotos, User, Forum) - Sidebar-Eintrag (nur für Moderatoren/Admins sichtbar, gelb) - Page in index.html registriert, pages-Objekt in app.js ergänzt - Router in main.py eingebunden (/api/moderation) - SW-Cache by-v357, app.js/ui.js/api.js auf v=94
This commit is contained in:
parent
d0abb6de9b
commit
8ba8f4dfa3
6 changed files with 692 additions and 4 deletions
|
|
@ -56,6 +56,7 @@ const App = (() => {
|
|||
chat: { title: 'Nachrichten', module: null, requiresAuth: true },
|
||||
social: { title: 'Social Media', module: null, requiresAuth: true },
|
||||
admin: { title: 'Admin', module: null, requiresAuth: true },
|
||||
moderation: { title: 'Moderation', module: null, requiresAuth: true },
|
||||
impressum: { title: 'Impressum', module: null },
|
||||
datenschutz: { title: 'Datenschutz', module: null },
|
||||
widget: { title: 'Widget', module: null, requiresAuth: true },
|
||||
|
|
@ -422,6 +423,12 @@ const App = (() => {
|
|||
|| state.user.is_moderator;
|
||||
adminItem.style.display = isMod ? '' : 'none';
|
||||
}
|
||||
const moderationItem = document.getElementById('sidebar-moderation');
|
||||
if (moderationItem) {
|
||||
const isMod = state.user.rolle === 'admin' || state.user.rolle === 'moderator'
|
||||
|| state.user.is_moderator;
|
||||
moderationItem.style.display = isMod ? '' : 'none';
|
||||
}
|
||||
const socialItem = document.getElementById('sidebar-social');
|
||||
if (socialItem) {
|
||||
const isSocial = state.user.is_social_media || state.user.rolle === 'admin';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue