2010-11-19 4 views
0

Je souhaite implémenter un contrôle d'accès basé sur le niveau dans mon application ruby ​​on rails. Comme là un utilisateur au niveau inférieur ne sera pas en mesure d'accéder aux données de son parent. ExempleContrôle d'accès basé sur le niveau en ruby ​​on rails

 
    Main Admin 
    | 
    |___ Sub Admin1 
    |  | 
    |  | 
    |  |___ SA1_USER1 
    |  | 
    |  |___ SA1_USER2 
    | 
    | 
    | 
    |___ Sub Admin2 
     | 
     |___ SA2_USER1 
     |  |  
     |  |__End_user1 
     |  |__End_user2 
     | 
     |___ SA2_USER2 

Dans la structure ci-dessus disent chaque utilisateur peut créer un enregistrement. Mais les enregistrements seront visualisés en fonction de la hiérarchie. Comme Administrateur principal sera en mesure d'accéder à tous les enregistrements, Sub Admin1 peut accéder aux enregistrements créés par self, SA1_user1 et sa1_user2 et ainsi de suite ..

Y a-t-il une bonne connexion pour implémenter ceci dans ruby ​​on rails?

Merci, PraWin.

Répondre

1

Je ne connais pas de plugin, mais ce ne serait pas si compliqué à écrire. Vous auriez juste besoin d'avoir un owner_id sur chaque enregistrement créé auquel vous voulez que les gens accèdent, et chaque utilisateur aurait un utilisateur parent, alors vous écririez une méthode de modèle pour user.is_ancestor_of? record.owner pour vérifier chaque fois qu'un utilisateur tente d'accéder à un enregistrement.

+0

Oui, j'ai ceci dans mon esprit. Y a-t-il une méthode qui retournera tous les ancêtres pour un noeud et aussi tous les enfants pour un noeud. – Pravin

+0

rien de tel n'existe que je sache, vous devrez probablement l'écrire à partir de zéro. J'espère que quelqu'un d'autre aura plus d'informations. – re5et

+0

il y a un joli plugin * ascendance *, que j'ai utilisé pour implémenter ceci. – Pravin