2009-07-18 6 views
0

Ich möchte den Zugriff für nicht registrierte/nicht angemeldete Benutzer mit Acl steuern - ich habe es eingerichtet, getestet, es funktioniert ich kann neue Gruppen, Benutzer erstellen, Benutzer zur Gruppe hinzufügen und Gruppenrichtlinien für bestimmte Controller-AktionenCake php auth und acl nicht angemeldete Benutzergruppe

Ich habe usergroup namens unregistriert und Benutzer namens temp erstellt, aber habe keine Ahnung, wie (Karte) nicht angemeldete Person zuweisen, die die Seite zu diesem Benutzer und Gruppe eingegeben?

Antwort

0

Warum würden Sie die Standardregel für Zulassen in der ACL-Struktur angeben?

Angenommen, Sie den anonymen Zugriff auf die folgenden Aktionen zulassen möchten: registrieren, über, someotherpage

Und Sie wollen, um den Zugriff über ACLs zu bearbeiten, antworten, Profil

In der Auth Komponente, Sie kann die Auth :: allow-Eigenschaft festlegen, die verschiedene Controller-Aktionen angibt, die allen (angemeldeten und nicht angemeldeten Benutzern gleichermaßen) Zugriff ermöglichen sollen. Also, in Ihrem Controller (kann entweder AppController seine global anzuwenden oder SpecificController gelten nur für diesen Controller) angeben (in der Regel im Controller :: before() -Methode):

$this->Auth->allow = array('register', 'about', 'someotherpage'); 

Dann Auth nur einschränken Zugriff auf die anderen Seiten. Das sollte viel einfacher sein als das, was Sie versucht haben, vorausgesetzt, ich lese Ihre Frage richtig.

HTH!

+0

Ich kann es nicht so tun, weil eine der Anwendung requiments Fähigkeit ist, Seiten für anonymous von Systemsteuerung zu ändern, so kann es nicht so fest codiert werden –

+0

Ich nehme an, Sie könnten Werte aus einer Datenbank ziehen, die Sie diese festlegen können Werte in dieser beforeFilter-Methode. Ich denke, das würde Ihre Anforderungen erfüllen, um variable Werte zu haben. –

0

Sie sind auf dem richtigen Weg - Sie haben einen "anonymen" Benutzer und eine Gruppe definiert. Der nächste Schritt, den Sie tun müssen, besteht darin, sich automatisch anonyme Benutzer als "anonyme" Benutzer anzumelden (es klingt dumm, aber vertrauen Sie mir). Auf diese Weise können Sie die ACL-Berechtigungen in den Tabellen so einrichten, als ob sie ein registrierter Benutzer wären.

@Travis Leleu - Die Tabellen für Auth existieren bereits, um die Berechtigungen für registrierte Benutzer/Gruppen zu definieren. Warum also eine zweite, separate Tabelle für nicht registrierte, anonyme Benutzer?