Moin,
ich versuche gerade herauszufinden, ob ich für ein Kundenproblem die Event2 Extension nutzen kann.
Hintergrund hierbei ist, dass von Frontend Usern Events bearbeiten sollen. Dies funktioniert bis zum Punkt der Speicherung auch schon sehr gut, allerdings erhalte ich dort dann folgende Fehlermeldung: "Es ist Ihnen nicht erlaubt Veranstaltungen zu bearbeiten, die nicht Ihrem zugewiesenen Veranstalter entsprechen."
Allerdings glaube ich dass diese Nutzer-Veranstaltungs-Verbindung korrekt über den Veranstalter vorliegt, aber ich hole euch mal etwas mehr ab:
TYPO3: Version 12.4.19, Legacy Installation
EXT: events2, Version 9.0.7
Plug-In: events2_management
Hier die wichtigsten Konstanten:
plugin.tx_events2.settings.userGroup = 1
plugin.tx_events2.persistence.storagePidForFrontendCreatedEvents = 335
plugin.tx_events2.persistence.storagePid = 335
plugin.tx_events2.settings.rootCategory = 4
plugin.tx_events2.settings.pidOfDetailPage = 337
plugin.tx_events2.settings.pidOfManagementPage = 338
plugin.tx_events2.settings.pidOfListPage = 336
Im Plugin selbst habe ich den Ablageort (pages) auf den Ordner gelegt in dem sowhl die Events als auch die Organisationen liegen.
Die Nutzer für den FE Login liegen in einem separaten Ordner.
Der Nutzer besitzt die Nutzergruppe 1 und die selbe Organisation, wie das Event, welches er bearbeiten möchte.
Wie beschrieben scheitert es auch erst beim Speichern, dh. der angemeldete Nutzer sieht die Liste seiner eigenen Veranstaltungen und gelangt auch in die Bearbeiten-Maske dieser:
Ich habe selbst schon einmal in die Extension geschaut:
(Datei typo3conf/ext/events2/Classes/EventListener/RestrictAccessEventListener.php)
In der Funktion isAccessAllowed() wird auf die Bedingung $event->getIsCurrentUserAllowedOrganizer() === false geprüft, welche sagt, dass mein Nutzer nicht berechtigt ist.
Dies liegt wahrscheinlich daran, dass an der Stelle keine Organisationen des Events ($event->getOrganizers()) vorliegen. Die Organisation des Nutzers hat er ($this->userRepository->getFieldFromUser('tx_events2_organizer')).
Ich hoffe der Fehler ist offesichtlicher als ich denke und ich habe nur ein Brett vor dem Kopf.