update
This commit is contained in:
@@ -80,27 +80,6 @@ function FahrzeugForm() {
|
||||
const { isAdmin } = usePermissions();
|
||||
const isEditMode = Boolean(id);
|
||||
|
||||
// ── Permission guard: only admins may create or edit vehicles ──────────────
|
||||
if (!isAdmin) {
|
||||
return (
|
||||
<DashboardLayout>
|
||||
<Container maxWidth="lg">
|
||||
<Box sx={{ textAlign: 'center', py: 8 }}>
|
||||
<Typography variant="h5" gutterBottom>
|
||||
Keine Berechtigung
|
||||
</Typography>
|
||||
<Typography variant="body1" color="text.secondary" sx={{ mb: 3 }}>
|
||||
Sie haben nicht die erforderlichen Rechte, um Fahrzeuge zu bearbeiten.
|
||||
</Typography>
|
||||
<Button variant="contained" onClick={() => navigate('/fahrzeuge')}>
|
||||
Zurück zur Fahrzeugübersicht
|
||||
</Button>
|
||||
</Box>
|
||||
</Container>
|
||||
</DashboardLayout>
|
||||
);
|
||||
}
|
||||
|
||||
const [form, setForm] = useState<FormState>(EMPTY_FORM);
|
||||
const [loading, setLoading] = useState(isEditMode);
|
||||
const [saving, setSaving] = useState(false);
|
||||
@@ -141,6 +120,27 @@ function FahrzeugForm() {
|
||||
if (isEditMode) fetchVehicle();
|
||||
}, [isEditMode, fetchVehicle]);
|
||||
|
||||
// ── Permission guard: only admins may create or edit vehicles ──────────────
|
||||
if (!isAdmin) {
|
||||
return (
|
||||
<DashboardLayout>
|
||||
<Container maxWidth="lg">
|
||||
<Box sx={{ textAlign: 'center', py: 8 }}>
|
||||
<Typography variant="h5" gutterBottom>
|
||||
Keine Berechtigung
|
||||
</Typography>
|
||||
<Typography variant="body1" color="text.secondary" sx={{ mb: 3 }}>
|
||||
Sie haben nicht die erforderlichen Rechte, um Fahrzeuge zu bearbeiten.
|
||||
</Typography>
|
||||
<Button variant="contained" onClick={() => navigate('/fahrzeuge')}>
|
||||
Zurück zur Fahrzeugübersicht
|
||||
</Button>
|
||||
</Box>
|
||||
</Container>
|
||||
</DashboardLayout>
|
||||
);
|
||||
}
|
||||
|
||||
const validate = (): boolean => {
|
||||
const errors: Partial<Record<keyof FormState, string>> = {};
|
||||
if (!form.bezeichnung.trim()) {
|
||||
@@ -160,19 +160,19 @@ function FahrzeugForm() {
|
||||
if (isEditMode && id) {
|
||||
const payload: UpdateFahrzeugPayload = {
|
||||
bezeichnung: form.bezeichnung.trim() || undefined,
|
||||
kurzname: form.kurzname.trim() || undefined,
|
||||
amtliches_kennzeichen: form.amtliches_kennzeichen.trim() || undefined,
|
||||
fahrgestellnummer: form.fahrgestellnummer.trim() || undefined,
|
||||
baujahr: form.baujahr ? Number(form.baujahr) : undefined,
|
||||
hersteller: form.hersteller.trim() || undefined,
|
||||
typ_schluessel: form.typ_schluessel.trim() || undefined,
|
||||
besatzung_soll: form.besatzung_soll.trim() || undefined,
|
||||
kurzname: form.kurzname.trim() || null,
|
||||
amtliches_kennzeichen: form.amtliches_kennzeichen.trim() || null,
|
||||
fahrgestellnummer: form.fahrgestellnummer.trim() || null,
|
||||
baujahr: form.baujahr ? Number(form.baujahr) : null,
|
||||
hersteller: form.hersteller.trim() || null,
|
||||
typ_schluessel: form.typ_schluessel.trim() || null,
|
||||
besatzung_soll: form.besatzung_soll.trim() || null,
|
||||
status: form.status,
|
||||
status_bemerkung: form.status_bemerkung.trim() || undefined,
|
||||
status_bemerkung: form.status_bemerkung.trim() || null,
|
||||
standort: form.standort.trim() || 'Feuerwehrhaus',
|
||||
bild_url: form.bild_url.trim() || undefined,
|
||||
paragraph57a_faellig_am: form.paragraph57a_faellig_am || undefined,
|
||||
naechste_wartung_am: form.naechste_wartung_am || undefined,
|
||||
bild_url: form.bild_url.trim() || null,
|
||||
paragraph57a_faellig_am: form.paragraph57a_faellig_am || null,
|
||||
naechste_wartung_am: form.naechste_wartung_am || null,
|
||||
};
|
||||
await vehiclesApi.update(id, payload);
|
||||
navigate(`/fahrzeuge/${id}`);
|
||||
|
||||
Reference in New Issue
Block a user