rights system

This commit is contained in:
Matthias Hochmeister
2026-03-23 12:12:21 +01:00
parent a575b61d26
commit fa10467f21
8 changed files with 32 additions and 90 deletions

View File

@@ -1,4 +1,5 @@
import { useState, useEffect, useRef, useCallback } from 'react';
import { useQuery } from '@tanstack/react-query';
import {
Box,
TextField,
@@ -36,14 +37,16 @@ const DIENSTGRAD_OPTIONS = [
'Kommandant',
];
const GROUP_OPTIONS = [
'dashboard_admin',
'dashboard_kommando',
'dashboard_gruppenfuehrer',
];
function NotificationBroadcastTab() {
const { showSuccess, showError } = useNotification();
const { data: groupOptions = [] } = useQuery<string[]>({
queryKey: ['admin-permission-groups'],
queryFn: async () => {
const { permissionsApi } = await import('../../services/permissions');
return permissionsApi.getGroups();
},
});
const [titel, setTitel] = useState('');
const [nachricht, setNachricht] = useState('');
const [schwere, setSchwere] = useState<'info' | 'warnung' | 'fehler'>('info');
@@ -198,7 +201,7 @@ function NotificationBroadcastTab() {
<MenuItem value="">
<em>Keine Einschraenkung</em>
</MenuItem>
{GROUP_OPTIONS.map((g) => (
{groupOptions.map((g) => (
<MenuItem key={g} value={g}>{g}</MenuItem>
))}
</TextField>

View File

@@ -22,8 +22,10 @@ function getRoleFromGroups(groups: string[] | null): string {
if (!groups) return 'Mitglied';
if (groups.includes('dashboard_admin')) return 'Admin';
if (groups.includes('dashboard_kommando')) return 'Kommandant';
if (groups.includes('dashboard_gruppenfuehrer')) return 'Gruppenführer';
if (groups.includes('dashboard_moderator')) return 'Moderator';
if (groups.includes('dashboard_fahrmeister')) return 'Fahrmeister';
if (groups.includes('dashboard_zeugmeister')) return 'Zeugmeister';
if (groups.includes('dashboard_chargen')) return 'Chargen';
if (groups.includes('dashboard_atemschutz')) return 'Atemschutz';
return 'Mitglied';
}