Empfehlungen: Erweiterte Suche

Anfängerfragen rund um ACL & Co.

Klassen zur Datenverarbeitung in den Controllern (DRY)

Anfängerfragen rund um ACL & Co.

Beitragvon Telokar » Mo 14. Mär 2011, 10:31

Hallo,

ich bin gerade dabei mich anhand eines kleinen Projekts in cakePHP einzuarbeiten.
Leider hänge ich bei der Autorisierung.

Folgendes versuche ich Umzusetzen:
Ich möchte eine Seite schreiben, bei der Benutzer für bestimmte Locations Reservierungen anlegen kann. Dabei kann aber nicht jeder Benutzer alle Locations sehen und folglich auch nicht alle reservieren. Das hängt von seinen Rechten ab. Ich habe also eine Zuordnung auf welche Locations der Benutzer berechtigt ist.

Es gibt folgende Benutzer-Rollen:
  • Administratoren
  • Moderatoren
  • Benutzer

Adminstratoren dürfen Locations anlegen und auch beliebig Reservierungen verwalten.
Moderatoren dürfen nur Reservierungen von Locations verwalten, bei denen sie als Moderator eingeteilt sind - das sind aber nicht zwangsläufig alle, bei denen sie selbst reservieren können.
Wo wir auch bei den Benutzern wären. Sie können Reservierungen für berechtigte Locations erstellen. Sie sollen auch ihre eigenen Reservierungen bearbeiten können.

Nun mein Dilemma:
Was ich an Tutorials für ACLs gelesen habe, gehen diese sogut wie immer davon aus, dass ACOs ein Abbild der Controller und deren Actions sind. Das macht bei der Aufteilung welche Benutzer-Rolle welche Actions benutzten darf durchaus Sinn, hilft mir bei der Zuordnung welcher Benutzer welche Locations nutzen und welcher Benutzer wo moderieren darf nicht wirklich weiter.

Wie kann ich hier also am besten vorgehen? Lege ich nun AROs für die Controller und Actions an oder für die Locations? Macht letzteres überhaupt Sinn?

Ich hoffe es findet sich hier jemand, der mir bei den Problem weiterhelfen oder mich auf ein entsprechendes Tutorial verweisen kann. Leider scheint das Forum hier nicht sehr aktiv zu sein, dennoch bedankte ich mich schon mal für die Hilfe.

- Telokar
Telokar
 
Beiträge: 1
Registriert: Mo 14. Mär 2011, 09:59

Re: Anfängerfragen rund um ACL & Co.

Beitragvon lukasstrassel » Mi 16. Mär 2011, 19:37

hay,
ich kann dir leider keine antwort geben ... blicke da auch nicht so ganz durch

ich möchte nur eine frage zum gleichen thema stellen ...

Benutzt man für mehr oder minder professionelle Anwendungen mit mehreren Benutzergruppen ACL oder ist man besser bedient, wenn man sich selbst was kreiert?

MfG Lukas
lukasstrassel
 
Beiträge: 16
Registriert: Di 1. Mär 2011, 23:07

Re: Anfängerfragen rund um ACL & Co.

Beitragvon mbrod » Mi 16. Mär 2011, 21:45

Also mit ACL & Co. habe ich mich bisher auch nicht beschäftigt. Ich komme mit der AuthComponent sehr gut klar, da ich bisher maximal 3 Rollen brauchte. Man muss halt in jedem Controller die Rechte definieren. Nur als grober Anhaltspunkt:
Code: Alles auswählen
    function isAuthorized(){
        if($this->Auth->user('group')=='admin'){return true;}//admin hat Zugang zu allen Funktionen
        return false;
    }
   
    function beforeFilter(){
        parent::beforeFilter();
        $this->Auth->allow('addreservation','reservation');//für alle zugänglich, ohne login
        if($this->Auth->user('group')=='mod'){//für mod zugänglich
            $this->Auth->allow('view','add');
        }
}
 

Um Abfragen auf bestimmte (eigene) Datensätze einzuschränken, könnte man die erlaubten IDs beim login des users in einem Array in der Session abspeichern und in der action dagegen prüfen.
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X


Zurück zu Components

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast