vor einiger Zeit hatten wir hier schon einmal darüber gesprochen, dass die Auth und ACL von CakePHP recht komplex sind. Insbesondere ACL ist relativ schwer zu warten. Gerade wenn man auch nicht selber auf dem Server "backen" kann.
Aus diesem Grund hatte ich mich dann nach einer Alternative umgesehen. Dabei bin ich auf das Authake Plugin gestossen. Wie es im Leben so ist, wenn man mal eine Entscheidung getroffen hat, dann muss man durch.
Leider musste ich feststellen, dass das Authake Plugin nicht mehr richtig gepflegt wird (sicher ein allgemeines Problem mit den ganzen Plugins, Helpern, etc. die so herum schwirren).
CakePHP könnte diesbezügl. mal etwas von Typo3 abschauen - wie die das mit den Extensions verwalten.
Zurück zum Thema: Jedenfalls habe ich das Authake Plugin auf Vordermann gebracht, damit es unter 1.2.x läuft. Außerdem habe ich noch ein paar Verbesserungen vorgenommen (Passwort-Verschlüsselungen).
Authake unterscheidet zwischen Usern, Gruppen und Regeln.
Dabei kann ein User mehreren Gruppen angehören. Die Regeln werden für die Gruppen vergeben. Bei den Regeln gibt es zwei Möglichkeiten: entweder, man verbietet erst einmal alles und lässt dann bestimmten Gruppen bestimmte Funktionen zu, oder man erlaubt erst einmal alles und verbietet dann bestimmten Gruppen bestimmte Funktionen.
Die Regeln haben eine Reihenfolge die von der niedrigsten Stufe zur höchsten durchlaufen werden. Die letzte Regel ist die wirksame. Wenn also ein User der Gruppe Provider in der Stufe 20 die Erlaubnis erhält, die Kontaktseite aufzurufen und auf Stufe 30 der Gruppe Everybody verboten wird die Kontaktseite aufzurufen, wird ein Provider die Kontaktseite nicht aufrufen können. Denn jeder User ist autom. Mitglieder der Gruppe Everybody.
Ein paar nette Funktionen noch: User kann zeitlich begrenzt werden. Kann so angelegt werden, dass er den Account per Mail zugesendet bekommt und bei der ersten Anmeldung das Passwort ändern muss.
Nachfolgend ein paar Screenshots von Authake. Falls Interesse besteht, kann ich die lauffähige Version zumailen oder irgendwo online stellen (je nach Resonanz/Interesse).
Ciao Thomas


