CMS:USER_PROTECT
Schützt ein Template vor dem Zugriff nicht angemeldeter Website-Besucher.
(CMS:USER_PROTECT [parameter=wert …])
Methode: Modules\Record\RecordUser::cmsProtect()
PHP-Schnipsel: include_and_stop (danach)
Parameter
| Parameter | Wert | Standard | Pflicht | Beschreibung |
|---|---|---|---|---|
errortemplate |
Templatename |
– | ja | Detailtemplate, das eingebunden wird, falls der Frontend-User keinen Zugriff auf den Container hat oder nicht angemeldet ist. |
filter[…][…] |
vgl. Parameter "filter[]" von CMS:SELECT |
– | Filterkriterien für den Profil-Datensatz, die beim angemeldeten Frontend-User erfüllt sein müssen. | |
sessionid |
Session-ID |
– | Session des Frontend-Users anhand der angegebenen sessionid wieder aufnehmen anstatt über ein Cookie. | |
cookiename |
Cookiename |
usess |
Name des Session-Cookies [a-z0-9]. |
[…] – der Parameter nimmt Unterschlüssel an, z. B. name[schlüssel]=wert.
Anwendung
Sperrt ein Template für nicht angemeldete Besucher: Ist niemand angemeldet (oder trifft
filter nicht zu), wird errortemplate eingebunden und die Seite beendet. Sonst läuft
das Template weiter, $set['user_id'] und $set['user'] sind gefüllt:
(CMS:USER_PROTECT errortemplate=u_login)
(CMS:INCLUDE header)
<h1>Mein Konto</h1>
<p>Angemeldet als <?php echo htmlspecialchars($set['user']['nickname']); ?></p>
Nur für eine Gruppe von Frontend-Usern (Profil-Feld role):
(CMS:USER_PROTECT errortemplate=u_denied filter[role]=editor)
Das errortemplate ist typischerweise das Anmeldeformular selbst - so landet der
Besucher nach der Anmeldung wieder auf der geschützten Seite.
Parameter im Einzelnen
errortemplate
Template für nicht angemeldete Besucher (oder wenn filter nicht zutrifft):
(CMS:USER_PROTECT errortemplate=u_login)
(CMS:USER_PROTECT errortemplate=templates.u_denied filter[role]=editor)
filter
Zusätzliche Bedingung an das Profil, Syntax wie CMS:SELECT:
(CMS:USER_PROTECT errortemplate=u_denied filter[role]=editor)
(CMS:USER_PROTECT errortemplate=u_denied filter[paid_until] >= "{$today}")
sessionid
(CMS:USER_PROTECT errortemplate=api_denied sessionid="{$_GET['sid']}")
cookiename
(CMS:USER_PROTECT errortemplate=u_login cookiename=shop)
Stand: camindo CMS 9.1.3