2010-12-11 10 views
7

Meine Realestate PHP-Anwendung haben folgende Benutzergruppen,Implementierung von ACL für meine PHP-Anwendung

Admins, Moderatoren Agents

Ich möchte folgende Berechtigung für die folgenden Benutzer angeben.

Admins ->

  • Kann Moderatoren erstellen,
  • Kann Agents erstellen,
  • können Eigenschaften Einfügen,
  • können Eigenschaften aktualisieren,
  • Kann löschen Eigenschaften

Daher hat ein Admin alle Privilegien, kurz ein Admin ist hier superAdmin

Ich möchte dem Moderator und damit den Agenten eingeschränkte Rechte zuweisen.

Ich bin verwirrt, wie man eine Datenbank dafür erstellt und auch, wie man es in meiner PHP-Anwendung implementiert.

danke

Antwort

11

Es klingt wie Sie ein rollenbasierte Zugangskontrollsystem gehen zu müssen. Die Entwicklung eines ist nicht wirklich eine triviale Aufgabe, so wie bereits vorgeschlagen, ein Framework oder fertige Klasse zu finden, die der Job wäre ein wertvoller Start wäre.

Role Based Access Control

http://www.tonymarston.net/php-mysql/role-based-access-control.html

http://www.sqlrecipes.com/database_design/fine_grained_role_based_access_control_rbac_system-3/

http://www.sitepoint.com/forums/showthread.php?threadid=162027

Sie sollten eine Tabelle erstellen wher Sie alle Arten von Rolle zu definieren.

und eine Tabelle für Benutzer

betreffen verschiedene Rollen an verschiedene Benutzer über zwei Tabellen zu verknüpfen. und etwas wie dieses ...

+0

Verwenden Sie Framework wie CakePHP oder Zend. Sie haben eingebaute Bibliotheken für ACL und sind leicht zu erlernen –

0

Die Art und Weise, dass ich dies in der Vergangenheit getan haben, war eine Benutzer-Tabelle in der Datenbank zu erstellen, die eine Zugriffsebene (Admin, Moderator und Agenten) hatte.

Wenn Sie ein Menüsystem haben, implementieren Sie eine Überprüfung, um zu sehen, welche Privilegien für welche Links benötigt werden ... Administratoren sehen alle Links, Moderator sieht nur Links, die er sehen soll, und Agenten sehen nur was sie sehen sollen.

Auch auf den Seiten, die Sie möglicherweise Benutzer einschränken möchten, sollten Sie nach der Benutzerzugriffsebene suchen. Wenn sie bestehen, werden sie die Seite sehen, wenn nicht, werden sie umgeleitet oder ein JavaScript-Fehler muss auftauchen.

So etwas wie die Zugriffsebene kann Ihnen helfen, es in einem Cookie zu speichern, da Sie Ihre Anrufe in Ihre Datenbank reduzieren können.

hoffte, das hilft, Mike

+3

... meinst du einen Cookie, den sie willkürlich ändern könnten, um ihr Zugriffslevel zu erhöhen? – mpen

+0

True Cookies sind ein wenig unsicher, aber Sie könnten es einfach überprüfen, indem Sie die Datenbank überprüfen. Die meisten Apps, die ich erstellen musste, waren für interne Mitarbeiter und es gab eigentlich nichts anderes zu gewinnen, als andere Seiten zu sehen. Ganz zu schweigen davon, dass alles protokolliert wurde. Selbst wenn Sie einige Überprüfungen umgehen, wird Ihr Seitentreffer protokolliert. Ich bin froh, dass es geholfen hat. Ich hoffe, dass ich weiterhin in diesem Forum helfen kann. – Psycorpse