Typo3 zeigt alle fe_groups bei Multidomain-Webseiten

Sonntag, 16. September 2012

Problem: Bei einem Multidomain-Projekt in Typo3 sollte jeder Redakteur die Möglichkeit haben, einen eigenen Login-Bereich zu pflegen und seine Gruppen (fe_groups) und Benutzer (fe_users) zu verwalten. Bei der Zuordnung eines Benutzers zu einer Gruppe werden dem Redakteur aber leider ALLE verfügbaren Gruppen aller Installationen/Domains angezeigt, statt nur die zu seiner Domain gehörenden.

Die schnelle (halbwahre) Lösung

Dieses Problem läßt sich durch eine Änderung des TCA für fe_users und fe_groups lösen. Wichtig: Voraussetzung ist, dass der Redakteur die Benutzergruppen und Benutzer im gleichen SysFolder verwaltet.

Diese Zeilen kommen in die typo3conf/extTables.php – oder in die ext_tables.php einer eigenen Extension:

t3lib_div::loadTCA('fe_users');
$TCA['fe_users']['columns']['usergroup']['config']['foreign_table_where'] = 'AND fe_groups.pid IN(###CURRENT_PID###) ORDER BY fe_groups.uid';
$TCA['fe_groups']['columns']['subgroup']['config']['foreign_table_where'] = 'AND NOT(fe_groups.uid = ###THIS_UID###) AND fe_groups.pid IN(###CURRENT_PID###) AND fe_groups.hidden=0 ORDER BY fe_groups.title';

Die bessere Lösung: Eine kleine Extension

Problem der Quick’n'Dirty-Lösung oben ist, dass bei der Einstellung für Zugriff von Seiten und Content-Elementen immer noch alle Benutzergruppen erscheinen. Die Lösung beschränkt sich nur auf die Auswahl der Gruppe während des Anlegens neuer Benutzern. Nach einigen Stunden Arbeit hier eine Lösung in Form einer Extension – sehr schnell und improvisiert zusammengeschustert – aber deutlich besser als die Lösung oben:

  • Nur die Benutzer-Gruppen (fe_groups) werden im Backend des Redakteurs angezeigt, auf die er auch in seiner Domain Zugriff hat
  • In Multi-Domain Umgebungen werden die Frontend-Benutzer-Gruppen der anderen Domains bzw. Redakteure ausgeblendet.
  • Die Benutzergruppen und Benutzer müssen nicht im gleichen Ordner sein
  • Die Gruppen-Liste wird auch bei “Zugriff” für Seiten und Content-Elemente beschränkt.

Die Extension kann hier heruntergeladen werden. Es ist ein ZIP-Dokument, das einfach entpackt und in den typo3conf/ext/-Ordner kopiert werden muss. Danach im Extension-Manager aktivieren – das war’s…

Für Suchmaschinen: fe_groups im Backend einschränken. Typo3 nur eigene FE-Benutzergruppen im Backend anzeigen. Benutzer sieht alle Benutzergruppen. Redakteur sieht alle Benutzergruppen. BE-User sieht Gruppen aller User. BE-User Benutzergruppen fremder User einschränken. BE-User Gruppen ausblenden. FE-Benutzergruppen anderer BE-User ausblenden. Alle Benutzergruppen im Backend sichtbar. Multidomain Webseite.