gbeister
I'm new here

<fsp:isAuthorized>-Frage

Hallo,

Über die Metadaten bei den Seitenstrukturen und Inhalten kann ja festgelegt werden, welche Benutzergruppen später Seiten/-inhalte sehen können oder nicht. Das funktioniert bei uns soweit auch ganz gut und die Seiten sind für nicht authorisierte Benutzer nicht über die Menüs sichtbar/zugreifbar.

Wenn wir aber über einen solch nicht authorisierten Benutzer den direkten Link zu einer nicht authorisierten Seite in das Adressfeld eingeben, so wird die Seite angezeigt.

Wir haben schon versucht im Template für unsere Standardseiten das <fsp:isAuthorized> Attribut über den gesamten Inhalt einzugliedern, das hilft aber nichts.

Wie können wir also Seiteninhalte von geschützten Seiten verbergen, sollte ein direkter Link zu einer geschützten Seite durch einen nicht authorisierten Benutzer, geöffnet werden?

Vielen Dank!

Viele Grüße

0 Kudos
1 Reply
Andreas-Knoor
Crownpeak Employee

Hallo,


Wir haben schon versucht im Template für unsere Standardseiten das <fsp:isAuthorized> Attribut über den gesamten Inhalt einzugliedern, das hilft aber nichts.


das ist genau der richtige Weg und so muss es auch funktionieren.

Ins Seiten-Template muss ein Konstrukt in dieser Art eingefügt werden (Variablen sind geeignet anzupassen):

$CMS_IF(!#global.preview)$
        $CMS_SET(set_permission,#global.node.meta("permission","inherit").getAllowed("activity"))$
        $CMS_IF(!set_permission.isEmpty)$<fsp:isAuthorized userRange="loggedIn" groups="$CMS_VALUE(set_permission.toString(","))$">$CMS_END_IF$
$CMS_END_IF$

(Schließen des Tags am Ende nicht vergessen)

Damit sollte die Seite sich selbst schützen.

Zum Debugging der Gruppen hilft im HTML ein Konstrukt der Art:

$CMS_IF(!#global.preview)$
<!-- User: <fsp:userInfo><%= login %></fsp:userInfo>
     Groups: <fsp:userGroups><%= groupname %> </fsp:userGroups> -->
$CMS_END_IF$

Damit kann man sehen, ob der User auch wirklich in den Gruppen ist, die man meint.

0 Kudos