2009-12-08 6 views
0

J'ai commencé à écrire une application en utilisant declarative_authorization (http://github.com/stffn/declarative_authorization) mais je me demande maintenant si c'est la bonne approche.Rails - Rôles ou héritage?

Dans mon application, je donnais à certains utilisateurs un rôle «client», un rôle «administrateur» et un rôle «superadmin». Cela fonctionnait très bien, mais je me rends compte maintenant que je besoin de quelques champs sur les modèles qui sont spécifiques au « client »

Superadmin = éditeur administrateur

Administrateur = éditeur client

client = a des attributs supplémentaires comme "avatar"

À ce stade, j'ai commencé à créer un modèle client qui a hérité de l'utilisateur. Cependant, dans ce cas, les clients auront toujours le rôle "client" et seuls les clients auront ce rôle. Cela semblait un peu étrange. Je suppose que je suis à la recherche d'un peu de conseils pour ce scénario.

Répondre

0

Pourriez-vous développer davantage les différences émergentes entre les rôles administrateur et utilisateur? Personnellement, je ne pense pas qu'un rôle de client soit nécessaire en soi, à moins qu'il n'y ait une catégorie privilégiée d'utilisateur authentifié moins importante. J'aurais juste besoin d'un utilisateur connecté pour toutes les actions que vous ne voudriez pas faire exécuter par un invité, et exiger des rôles admin/superutilisateur pour toutes les actions que vous ne voulez pas que les utilisateurs réguliers exécutent. Je pense que l'entrée dans plusieurs modèles ou même STI est inutile.

S'il y a un cas particulier spécifique à votre application qui me manque, s'il vous plaît faites le moi savoir! ;)

+0

Vous suggérez qu'un administrateur est peut-être juste un utilisateur standard? Dans la vraie application, il y a en fait un troisième niveau - un superadmin, qui est autorisé à modifier les administrateurs. Superadmin = éditeur administrateur Admin = éditeur client Client = a des attributs supplémentaires comme "avatar" –

+0

Édité la question originale pour inclure cette information. –

Questions connexes