it-swarm.com.de

Wo ist der richtige Ort, um nach abgelaufenen ACLs / Sitzungen / Berechtigungen zu suchen?

Ich möchte wissen, was der richtige, empfohlene oder häufigste Ort ist, um nach abgelaufener Sitzung, Autorisierung und ACL-Rechten zu suchen.

Kurz gesagt: überprüfe ich

!$session->isActive() 

In der Controller-Anzeigemethode oder in der Ansichtsanzeige oder sollte ich beide einchecken?

was ist mit

$user->authorise('example.canDo','com_example')

EDIT: Zusätzliches Beispiel

Ich meine view.html Ich schließe solche Schecks ein. (Warum? Weil einige Beispiele sie hatten) und ich fange an, es die ganze Zeit müde zu machen.

if (!$user->authorise('myCom.myAdmin', 'com_myCom') || !$session->isActive()) {
  $app->redirect('/index.php?option=com_users&view=login&return=' .  
  urlencode(base64_encode($this->currPageUrl)));
}
5
Andreas

Session und ACL sind zwei getrennte Konzepte, obwohl sie gekoppelt sind. Es ist also gut, den Unterschied zwischen ihnen zu verstehen. Ich assimiliere auch den Begriff permissions mit ACL.

Session

Da Sie Joomla als Ihr Backbone verwenden, leistet die Plattform das Schwergewicht, wenn es um die Abwicklung und Authentifizierung von Sitzungen geht. Die Chancen, dass Sie mit der Sitzung interagieren müssen, sind eher gering (es gibt Anwendungsfälle, aber keine abgelaufene Sitzung). Eine einfache Antwort lautet also: Joomla übernimmt die Sitzung für Sie. Sie müssen nichts tun.

Was passiert ist, dass Sie keine zusätzlichen Prüfungen durchführen müssen, wenn Sie (über ACL) einen registrierten Benutzer zum Ausführen einer Aktion benötigen und die Sitzung irgendwie abgelaufen ist.

ACL

Die ACL selbst kann auf verschiedene Arten verwendet werden, daher gibt es keine einfache Antwort. Hier sind einige grundlegende Ideen.

  • Wenn Sie eine einfache Überprüfung durchführen möchten, um festzustellen, ob der Benutzer überhaupt auf eine Komponente zugreifen darf, ist die Hauptdatei der Komponente (z. B. com_example, example.php) der richtige Ort dafür.
  • Je komplexer Ihre Berechtigungen sind, desto mehr verwenden Sie sie in Controllern, Ansichten und Vorlagen (wenn möglich in dieser Reihenfolge).
3
Valentin Despa