Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,090 of 9,090 pages
About the help in other languages
All help pages

eZUser und Zugriffsprüfungen

Der aktuelle Benutzer und Zugriffsprüfungen aus PHP und Templates - eZUser::currentUser(), isAnonymous(), isLoggedIn(), hasAccessTo() und sein accessWord yes, no oder limited, Prüfungen auf Objektebene und die…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/extension-development/part-8-reference/ezuser-and-access.md

On this page

This page is a translation. Read the English original

eZUser und Zugriffsprüfungen

Teil 8, Referenz 9. eZUser (kernel/classes/datatypes/ezuser/ezuser.php) ist ein Benutzerkonto. Jeder Request hat einen aktuellen Benutzer; auf einer öffentlichen Seite ist das meist der anonyme Benutzer. Zugriff wird über Rollen und ihre Richtlinien gewährt (Sektionen, Rollen und Zugriff für Builder), und eine Erweiterung deklariert ihre eigenen Richtlinienfunktionen (Richtlinienfunktionen und Zugriff).

Der aktuelle Benutzer

Methode (statisch)Gibt zurück
eZUser::currentUser()den Benutzer dieses Requests
eZUser::currentUserID()die ID
eZUser::fetch( $id, $asObject = true ), fetchByName( $login, ... ), fetchByEmail( $email, ... )andere Benutzer
MethodeGibt zurück
isAnonymous()true für den anonymen Benutzer
isLoggedIn()true, wenn angemeldet
contentObject()das Inhaltsobjekt des Benutzers (Name, Foto ...)
groups( $asObject = false )die Gruppen des Benutzers
roles()die Rollen des Benutzers

hasAccessTo()

function hasAccessTo( $module, $function = false )

gibt ein Array zurück, dessen accessWord einer dieser Werte ist:

accessWordBedeutung
yesvoller Zugriff
nokein Zugriff
limitedZugriff mit Einschränkungen (Sektionen, Klassen, Teilbäume ...), aufgeführt in policies
<?php
$user = eZUser::currentUser();
$access = $user->hasAccessTo( 'myext', 'manage' );
if ( $access['accessWord'] === 'no' )
{
    return $Module->handleError( eZError::KERNEL_ACCESS_DENIED, 'kernel' );
}

In einem Kommandozeilenskript als anonymer Benutzer ausgeführt, gab hasAccessTo( 'content', 'read' ) limited zurück und hasAccessTo( 'setup', 'setup' ) no.

Bei einer Richtlinienfunktion ohne Einschränkungen (den meisten Funktionen von Erweiterungen) behandeln Sie alles außer yes als keinen Zugriff, es sei denn, Ihre Funktion deklariert Einschränkungen und Sie werten sie aus.

Zugriff auf Inhalte

Verwenden Sie für Inhalte die eigenen Prüfungen des Objekts und des Knotens, die alle Einschränkungen auswerten:

MethodeAn
canRead(), canEdit( ... ), checkAccess( $functionName, ... )eZContentObject
canRead(), canEdit(), canCreate(), canRemove()eZContentObjectTreeNode

subTreeByNodeID() und die Fetch-Funktionen für Inhalte wenden den Lesezugriff selbst an.

In Templates

{if fetch( 'user', 'has_access_to', hash( 'module', 'myext', 'function', 'manage' ) )}
    <a href={'/myext/manage'|ezurl}>{'Manage'|i18n( 'extension/myext' )}</a>
{/if}

fetch( 'user', 'current_user' ) liefert den aktuellen Benutzer. In Administrationsmenüs verbirgt menu.ini [MenuAccessSettings] Links, die ein Benutzer nicht öffnen kann (Kontextmenüs und Integration in die Administration).

Regeln

  • Prüfen Sie den Zugriff in der View, auch wenn der Link dorthin verborgen ist: Jeder kann eine URL eintippen.
  • Vergleichen Sie im Code nie Benutzer-IDs oder Gruppennamen, um Zugriff zu gewähren; gewähren Sie ihn über eine Richtlinienfunktion, damit Administratoren ihn zuweisen können.
  • Einen Benutzer aus Code anzumelden (eZUser::loginUser()) ist Sache von Login-Handlern; eine gewöhnliche Erweiterung tut das nie.

Demomodus. eZUser::store() behält das gespeicherte Passwort eines Administrators bei, solange EXP_DEMO_MODE=1 gilt; fragen Sie expDemoMode::protectsPassword( $user ), bevor Sie ein Passwort ändern, damit der Benutzer den Grund erfährt. Demomodus für Entwickler.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x