ルートファイルにこれがあります:
devise_for :users, :controllers => { :registrations => "users/registrations",
:sessions => "users/sessions",
:omniauth_callbacks => "users/omniauth_callbacks" }
devise_scope :user do
get 'sign_in', :to => 'users/sessions#new', :as => :new_user_session
get 'sign_out', :to => 'devise/sessions#destroy', :as => :destroy_user_session
end
そして今、私は追加しました:
resources :users
管理者ユーザーがすべてのユーザーを表示できるようにしたいからです。
CanCanにはこれがあります:
class Ability
include CanCan::Ability
def initialize(user)
if user
if user.admin?
can :manage, :all
end
can [:read, :edit, :update], User, :id => user.id
end
can [:create], User
end
end
これは十分に安全ですか?新しく作成されたルートへの呼び出しをブロックするために、UserController に before_filter も追加する必要がありますか? このようなもの?これに関する問題は、ユーザーが自分のプロファイルを変更できなくなったことです...
before_filter :check_rights
private
def check_rights
unless current_user.admin
redirect_to root_path
end
end