2009-10-04 7 views
0

J'ai une application où il y a plusieurs rôles "Admin-ish". Imaginez que vous avez un super-administrateur qui peut éditer n'importe quoi, et aussi un administrateur de site qui peut éditer n'importe quelle information sur son site. Donc, les deux sites admin/sites et siteadmin/sites sont fondamentalement exactement la même vue.Vues avec plusieurs rôles Admin-ish

Quelle est la droite façon de configurer ceci (vues/contrôleurs)? J'essaie de garder les choses aussi DRY que possible.

Répondre

0

Je suis un grand fan du plugin Rails Authorization

Cela vous permet d'assigner facilement des rôles à des objets et utiliser des blocs pour accorder l'accès.

@a.has_role('admin') 
@b.has_role('super_admin') 

permit "admin or super_admin' do 
    # Show admin and super_admin stuff 
end 

permit 'super_admin' {} 

Vous pouvez également autoriser l'accès à d'autres objets ou classes.

@user.has_role('photographer', @photo) 
@user.has_role('news_poster', NewsPost) 
+0

Alors, comment pourriez-vous séparer les vues qui avaient 90% de congruence? Des tonnes de partiels? Logique dans les vues? – Jeff

+1

Jeff, vous pouvez le faire de toute façon. J'ai fait les deux. Cela dépendra vraiment du degré de chevauchement et de la probabilité qu'ils restent similaires ou qu'ils auront tendance à diverger à l'avenir. –

Questions connexes