2016-09-12 1 views
0

Über BE ist es möglich, einem fe_user Zugriff auf Inhalte zu geben, wenn die fe_group, zu der er gehört, als Untergruppe die fe_group hat, die als Gruppe mit Zugriff auf den Inhalt definiert ist.TYPO3 - Keine Vererbung von Zugriffsrechten über Flüssigkeit möglich

Also z.B. wenn ich 'Produktgruppe 02' (uid = 2) definiere, sollte ich über BE Zugang zu einem bestimmten Inhalt haben, ein fe_user der zu 'Benutzergruppe 03' (uid = 6) gehört, der als Untergruppe 'Produktgruppe 02' (uid = 2), kann der fe_user auf den Inhalt zugreifen.

fe_groups Setup:

uid|title|subgroup 
1|Product Group 01| 
2|Product Group 02| 
3|Product Group 03| 
4|User Group 01|1 
5|User Group 02| 
6|User Group 03|2,3 

Aber wenn ich direkt in mein fluidtemplate definieren, dass {f: cObjects (typoscriptObjectPath: 'lib.usergroup')} == '2' sollte Zugriff auf den Inhalt haben und anschließend 'User Group 03', die erwähnte fe_user können nicht darauf zugreifen:

typoscript: 

lib.usergroup = TEXT 
lib.usergroup.data = TSFE:fe_user|user|usergroup 

partial.html 

<f:if condition="{f:cObject(typoscriptObjectPath: 'lib.usergroup')} == '2'"> 
... 
</f:if> 

// ... natürlich, wenn die fe_user gehört 'Produktgruppe 02' er darauf zugreifen können.

Aber ist es möglich, an der oben genannten fe_groups-Struktur zu bleiben und trotzdem dem erwähnten fe_user Zugriff auf den Inhalt über Flüssigkeit zu geben?

Antwort

3

TSFE:fe_user|user|usergroup ruft ab, was genau in der Benutzergruppe des Benutzers gespeichert ist. In Ihrem Fall ist ein 6 gespeichert und Sie vergleichen es mit 2, die false zurückgibt.

Darüber hinaus kann eine solche Lösung mehr Probleme verursachen, wenn Sie mehr als eine Benutzergruppe für Ihren Benutzer festlegen. In diesem Fall gibt TSFE:fe_user|user|usergroup eine durch Kommas getrennte Liste von Benutzergruppen wie z. B. 6,2,3 zurück und Ihre Bedingung führt wieder zu false.

Korrekter Weg ist in Verwendung f:security.ifHasRole ViewHelper. Also, so etwas wie dies sollte Ihnen helfen:

<f:security.ifHasRole role="2"> 
    Your stuff here 
</f:security.ifHasRole> 
+0

Perfekt ... das funktioniert! Danke vielmals –