Zum Inhalt springen

FE Zugriff : Benutzergruppe ausschließen

Erstellt am 10. Juni 2008 · 6 Antworten · letzte Antwort am 29. August 2008

Tags: Frontend-Benutzer, Frage

Benjamecho ·

Hallo!

Sorry, mir ist bewusst, dass ich in der falschen Kategorie poste, aber ich habe keine geeignetere gefunden. Falls meine Frage woanders besser reinpasst könnt Ihr sie natürlich gerne verschieben! Die Kategorie "Backend" ist natürlich falsch, aber besser als "Typoscript" 🙂

Zu meiner Frage:
Ich habe mehrere Benutzergruppen; z.B.
Gruppe A
Gruppe B
Gruppe c

Ein Benutzer kann einer, mehreren oder allen Gruppen angehören.

Dann habe ich eine Seite, die für alle eingeloggten (FE-)-User sichtbar ist. Auf der Seite gibt es Inhalt, der ausschließlich Benutzern der Gruppe A angezeigt wird. Kein Problem, ich kann einfach bei "Zugriff" Gruppe A für dieses Inhaltselement auswählen.

Jetzt möchte ich allen, die der Gruppe A nicht angehören, einen Text anzeigen, wie z.B. "Sie gehören nicht der Gruppe A an und können die Informationen XYZ daher nicht einsehen. Bitte senden Sie die Daten ABC an Person XXX, um für diese Gruppe freigeschaltet zu werden."

Wie kann man so eine Bedingung realisieren? Also konkret: Inhaltselement wird angezeigt...
* wenn der User eingeloggt ist
* wenn er NICHT der Gruppe A angehört

??

Danke vorab für Eure Tipps!
Benjamecho

Benjamecho ·

Ich habe mir jetzt erstmal eine provisorische Zwischenlösung per TypoScript gebastelt:

temp.keinzugriff = TEXT

[usergroup = *]
  temp.keinzugriff.value = <p>Leider haben Sie für diesen Bereich des Online-Portals noch keine Zugriffsrechte.</p>
[global]

[usergroup = 6]
  temp.keinzugriff.value >
[global]

[globalVar = TSFE:id=264]
  page.10.subparts.INHALT.20 < temp.keinzugriff
[global]

Dennoch bin ich weiterhin an einer sauberen Lösung interessiert, da "normale" BE-Redakteure auf das Template und somit auch auf diesen Text keinen Zugriff haben.

just2b ·

du kannst mit && conditions verknüpfen, also zB

[usergroup = 6] && [usergroup = 6]
...

georg

Benjamecho ·

Ich weiß, aber das bringt in diesem Fall doch nichts, oder übersehe ich was?
Wie kann ich mit dem Operator "&&" das Snippet aufräumen?

Optimal wäre...

[usergroup = *] && ![usergroup = 6]

... also eingeloggt und nicht von usergroup 6, aber eine "ungleich" bzw. "is false" Condition gibt's ja leider nicht.

Benjamecho ·

Funktioniert leider nicht. Es geht anscheinend nur über den Umweg, dass ich [usergroup = *] etwas zuweise und anschließend für [usergroup = 6] den "value" wieder entferne.

P.S. Typo3 ist scheinbar etwas zu optimistisch: es kennt weder bei Zugriffsrechten, noch bei TS-Conditions den Fall, dass eine Aussage falsch/false ist 🙂

Silke ·

Die Frage ist ja schon etwas älter, aber vielleicht hilft es noch etwas:

Man kann ja in Bedingungen indirekt auch "nicht" sagen - mit Hilfe von ELSE. Hier z.B.:

temp.keinzugriff = TEXT

[usergroup = 6]

[ELSE]
temp.keinzugriff.value = <p>Leider haben Sie für diesen Bereich des Online-Portals noch keine Zugriffsrechte.</p>
[GLOBAL]

Anmerkung: usergroup = * muß nach dem, wie ich das Beispiel verstehe, nicht explizit geschrieben werden...

Silke