2011-07-29 15 views
3

Devizesを認証モジュールとして使用するRails Appで作業していますが、CanCanが管理者に新しいユーザーを作成できるようにカスタマイズしたいと考えています。私は、これを行うことができるようにDeviseのコントローラをカスタマイズする方法を理解するのに苦労しています。どんな助けもありがとう。Devise管理者に制限する

+0

基本的には、コントローラのアクションを管理者ロールに制限する必要があります。このためにCanCanを調べることをおすすめします。単純な定義ファイルを使用してモデルのアクションを制限することができます。以下は素晴らしいreadmeとwikiのプロジェクトページです:https://github.com/ryanb/cancan –

答えて

0

を行う必要があり、ルーティングトリックは、あなたがユーザーを管理します「ユーザー」のコントローラを作成してからのため、単純に権限を設定することができますがありそれ。あなたが行くように良いことがあり

can :manage, :all 

:あなたは管理者がに設定されていると仮定すると、

class UserController < ApplicationController 
    load_and_authorize_resource 

    def index 
    end 

    def new 
    end 

    def show 
    end 

    def create 
    if @user.save 
     flash[:notice] = "Successfully created User." 
     redirect_to root_path 
    else 
     render :action => 'new' 
    end 
    end 

    def edit 
    end 

    def update 
    params[:user].delete(:password) if params[:user][:password].blank? 
    params[:user].delete(:password_confirmation) if params[:user][:password].blank? and params[:user][:password_confirmation].blank? 
    if @user.update_attributes(params[:user]) 
     flash[:notice] = "Successfully updated User." 
     redirect_to user_index_path 
    else 
     render :action => 'edit' 
    end 
    end 

    def destroy 
    if @user.destroy 
     flash[:notice] = "Successfully deleted User." 
     redirect_to user_index_path 
    end 
    end 

end 

:だからあなたの新しいユーザコントローラであなたのようなものを持つことができます。あなたのルートで

あなたのルートを設定する必要がありますファイル:

resources :user, :controller => "user" 

は、この情報がお役に立てば幸い!

+0

これは壊滅的に壊れてしまい、問題を解決しません。この作業を行うには、devise(devise_for:users、:path_prefix => 'd')を作成する接頭辞を追加し、device_forの後に自分のリソースを追加してください。削除しないでください:ユーザーから登録可能です。また、このコントローラーは、deviseに必要な許可フィルターを追加していません。それを試してみてください:https://github.com/plataformatec/devise/wiki/How-To:-User-CanCan-+-Devise,-とても簡単です。 (自分自身を書いた) –

5

あなたは何もカスタマイズする必要はありません:D

  • 取り除く:あなたの工夫モデルから登録可能に。

  • ユーザー コントローラ上のユーザー権限のためにあなたのユーザーCRUD *(ちょうど足場ユーザー)

  • 使用カンカンを作成します。

*ユーザーCRUDを作成する方法の工夫のWikiをチェックし、あなたが

関連する問題