2010-03-29 7 views
0

Je souhaite pouvoir modifier et supprimer des ressources moi-même, mais ne pas autoriser les utilisateurs de l'application à le faire.Restriction Modification et suppression

Existe-t-il un moyen facile de le faire dans Rails?

Une solution incomplète consisterait simplement à supprimer les boutons "delete" et "edit" de la vue d'index, mais cela ne désactive pas leur capacité à le faire via des requêtes HTTP directes.

rails de roulement 2.2.2 et 1.8.7 rubis

Répondre

3

Ajouter un before_filter dans votre controller comme indiqué ci-dessous:

class PostsController < ApplicationController 

    before_filter :require_god, :only => [:edit, :update, :destroy] 

private 
    def require_god 
    unless current_user.id == (@@god ||= User.find_by_login("phleet")).id 
     flash[:notice] = "You don't have access to this page" 
     redirect_to root_path 
     return false 
    end 
    end 

end 
1

Je recommande CanCan. C'est vraiment simple, vous avez seulement besoin de capacity.rb pour définir ce que l'utilisateur n'est pas autorisé à faire.

0

Jetez un oeil à active_scaffold, admin_data et typus (tous disponibles sur github). Ce sont tous des plugins qui rendent trivialement facile la construction du côté admin des choses de telle sorte que vous pouvez facilement garder les choses d'administration séparées des choses faisant face à l'utilisateur. Personnellement, j'aime typus, mais cela nécessite que vous ayez une table typus_users qui soit séparée de toutes les tables des autres utilisateurs, ce qui n'est peut-être pas du goût de tout le monde. D'un autre côté, si vous ne voulez rien de compliqué ou que vous préférez le construire vous-même, un simple before_filter devrait faire l'affaire ...

Questions connexes