diff --git a/backend/spaces.db-shm b/backend/spaces.db-shm index aa0ec1d..a184a4a 100644 Binary files a/backend/spaces.db-shm and b/backend/spaces.db-shm differ diff --git a/backend/spaces.db-wal b/backend/spaces.db-wal index dc681d3..c240e1f 100644 Binary files a/backend/spaces.db-wal and b/backend/spaces.db-wal differ diff --git a/frontend/src/pages/Permissions.jsx b/frontend/src/pages/Permissions.jsx index 9c556b2..265247b 100644 --- a/frontend/src/pages/Permissions.jsx +++ b/frontend/src/pages/Permissions.jsx @@ -10,6 +10,9 @@ const Permissions = () => { const [error, setError] = useState('') const [showForm, setShowForm] = useState(false) const [editingGroup, setEditingGroup] = useState(null) + const [showDeleteModal, setShowDeleteModal] = useState(false) + const [groupToDelete, setGroupToDelete] = useState(null) + const [confirmChecked, setConfirmChecked] = useState(false) const [formData, setFormData] = useState({ name: '', description: '', @@ -132,28 +135,43 @@ const Permissions = () => { setShowForm(true) } - const handleDelete = async (groupId) => { - if (!window.confirm('Möchten Sie diese Berechtigungsgruppe wirklich löschen?')) { + const handleDelete = (group) => { + setGroupToDelete(group) + setShowDeleteModal(true) + setConfirmChecked(false) + } + + const confirmDelete = async () => { + if (!confirmChecked || !groupToDelete) { return } try { - const response = await authFetch(`/api/permission-groups/${groupId}`, { + const response = await authFetch(`/api/permission-groups/${groupToDelete.id}`, { method: 'DELETE', }) if (response.ok) { await fetchGroups() + setShowDeleteModal(false) + setGroupToDelete(null) + setConfirmChecked(false) } else { - const errorData = await response.json() + const errorData = await response.json().catch(() => ({ error: 'Fehler beim Löschen' })) alert(errorData.error || 'Fehler beim Löschen der Berechtigungsgruppe') } } catch (err) { - alert('Fehler beim Löschen der Berechtigungsgruppe') console.error('Error deleting permission group:', err) + alert('Fehler beim Löschen der Berechtigungsgruppe') } } + const cancelDelete = () => { + setShowDeleteModal(false) + setGroupToDelete(null) + setConfirmChecked(false) + } + const handleChange = (e) => { setFormData({ ...formData, @@ -488,7 +506,7 @@ const Permissions = () => { + + + + + )} )