diff --git a/frontend/dist/index.html b/frontend/dist/index.html index 0c6b9ca..b0ace1e 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -11,7 +11,7 @@ Schichtplaner — Veranstaltungsschichtpläne - + diff --git a/frontend/src/components/ShiftMatrixTable.jsx b/frontend/src/components/ShiftMatrixTable.jsx index 2229de3..b79ab58 100644 --- a/frontend/src/components/ShiftMatrixTable.jsx +++ b/frontend/src/components/ShiftMatrixTable.jsx @@ -27,15 +27,23 @@ export default function ShiftMatrixTable({ window.removeEventListener('storage', handleUpdate); }; }, []); - if (!event || !event.task_areas || event.task_areas.length === 0) { + const eventObj = event?.event || event || {}; + const taskAreas = event?.task_areas || eventObj?.task_areas || []; + + const createdById = typeof eventObj.created_by === 'object' ? eventObj.created_by?.id : eventObj.created_by; + const isGuest = !user; + const isCoManager = user && eventObj?.co_managers && eventObj.co_managers.some(cm => (typeof cm === 'object' ? cm.id === user.id : cm === user.id)); + const isManager = user && (user.is_admin_user || user.is_staff || user.is_superuser || createdById === user.id || isCoManager); + + if (!eventObj || !taskAreas || taskAreas.length === 0) { return (

Keine Aufgabenfelder vorhanden

[ Event hat noch keine definierten Aufgabenfelder oder Schichten ]

- {user && (user.is_admin_user || user.is_staff || user.is_superuser || event?.created_by === user.id || event?.created_by?.id === user.id || (event?.co_managers && event.co_managers.some(cm => (typeof cm === 'object' ? cm.id === user.id : cm === user.id)))) && onEditEvent && ( + {isManager && onEditEvent && ( )} - {user && (user.is_admin_user || user.is_staff || user.is_superuser || event?.created_by === user.id || event?.created_by?.id === user.id) && onDeleteEvent && ( + {isManager && onDeleteEvent && (