2010-12-11 23 views
7

Mon RealEstate applications PHP ont des groupes d'utilisateurs suivants,mise en œuvre ACL pour mon application PHP

Admins, Modérateurs Agents

je veux préciser suivant l'autorisation aux utilisateurs suivants.

Admins ->

  • peut créer des Modérateurs,
  • peut créer des agents,
  • peut insérer des propriétés,
  • Can Propriétés Mise à jour,
  • pouvez supprimer des propriétés

Ainsi, un administrateur aura tous les privilèges en un administrateur ici sera superadmin

Je veux attribuer des privilèges limités au modérateur et donc aux agents.

Je suis confus sur la façon de créer une base de données pour cela et aussi sur la façon de l'implémenter dans mon application PHP.

merci

Répondre

11

On dirait que vous allez avoir besoin d'un système de contrôle d'accès basé sur les rôles. Développer un n'est pas vraiment une tâche triviale, comme déjà suggéré, trouver un cadre ou une classe prête à l'emploi qui fait le travail serait un bon début.

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

Vous devez créer une table wher vous devez définir tout type de rôle.

et une table pour les utilisateurs

concernent des rôles différents à différents utilisateurs via la liaison de deux tables. et quelque chose comme ça ......

+0

Utilisez cadre comme cakephp ou zend. ils ont intégré des bibliothèques de composants pour ACL et aussi facile à apprendre –

0

La façon dont je l'ai fait dans le passé était de créer une table d'utilisateurs dans la base de données qui a un niveau d'accès (Admin, Modérateur et agents). Ensuite, si vous avez un système de menu, mettez en place une vérification pour voir quels privilèges sont nécessaires pour les liens ... Les administrateurs verront tous les liens, le modérateur ne verra que les liens auxquels il est supposé et les agents ne verront que ce qu'ils sont censés voir.

Toujours sur les pages que vous voudrez restreindre les utilisateurs, vous voudrez vérifier le niveau d'accès des utilisateurs. S'ils passent, ils verront la page, sinon, ils seront redirigés ou une erreur javascript devra apparaître. Quelque chose comme le niveau d'accès peut vous faire du bien de le stocker dans un cookie que vous pouvez réduire vos appels à votre base de données.

Hope this helps, Mike

+3

... vous voulez dire un cookie, qu'ils pourraient modifier l'arbitraire d'augmenter leur niveau d'accès? – mpen

+0

Les vrais cookies sont un peu peu sûrs mais vous pouvez simplement vérifier ensuite en vérifiant la base de données. La plupart des applications que je devais construire étaient pour des employés internes et il n'y avait vraiment rien à gagner autre que de voir d'autres pages. Pour ne pas mentionner tout a été enregistré même si vous avez contourné certaines vérifications, il enregistrerait votre page hit. Je suis content que cela ait aidé. J'espère continuer à aider sur ce forum. – Psycorpse