new features

This commit is contained in:
Matthias Hochmeister
2026-03-23 17:54:19 +01:00
parent 4c323748fd
commit 97c9af7f14
5 changed files with 40 additions and 9 deletions

View File

@@ -168,10 +168,14 @@ function PermissionMatrixTab() {
const permissionMutation = useMutation({
mutationFn: (updates: { group: string; permissions: string[] }[]) =>
permissionsApi.setBulkPermissions(updates),
onSuccess: () => {
onSuccess: (result) => {
queryClient.invalidateQueries({ queryKey: ['admin-permission-matrix'] });
queryClient.invalidateQueries({ queryKey: ['my-permissions'] });
showSuccess('Berechtigungen gespeichert');
if (result?.droppedPermissions && result.droppedPermissions.length > 0) {
showError(`Berechtigungen gespeichert, aber ${result.droppedPermissions.length} Berechtigung(en) existieren nicht in der DB und wurden ignoriert: ${result.droppedPermissions.join(', ')}`);
} else {
showSuccess('Berechtigungen gespeichert');
}
},
onError: () => showError('Fehler beim Speichern der Berechtigungen'),
});

View File

@@ -25,8 +25,9 @@ export const permissionsApi = {
await api.delete(`/api/permissions/admin/group/${encodeURIComponent(group)}`);
},
setBulkPermissions: async (updates: { group: string; permissions: string[] }[]): Promise<void> => {
await api.put('/api/permissions/admin/bulk', { updates });
setBulkPermissions: async (updates: { group: string; permissions: string[] }[]): Promise<{ droppedPermissions?: string[] }> => {
const r = await api.put('/api/permissions/admin/bulk', { updates });
return r.data;
},
setMaintenanceFlag: async (featureGroup: string, active: boolean): Promise<void> => {