Devizesを認証モジュールとして使用するRails Appで作業していますが、CanCanが管理者に新しいユーザーを作成できるようにカスタマイズしたいと考えています。私は、これを行うことができるようにDeviseのコントローラをカスタマイズする方法を理解するのに苦労しています。どんな助けもありがとう。Devise管理者に制限する
答えて
を行う必要があり、ルーティングトリックは、あなたがユーザーを管理します「ユーザー」のコントローラを作成してからのため、単純に権限を設定することができますがありそれ。あなたが行くように良いことがあり
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"
は、この情報がお役に立てば幸い!
これは壊滅的に壊れてしまい、問題を解決しません。この作業を行うには、devise(devise_for:users、:path_prefix => 'd')を作成する接頭辞を追加し、device_forの後に自分のリソースを追加してください。削除しないでください:ユーザーから登録可能です。また、このコントローラーは、deviseに必要な許可フィルターを追加していません。それを試してみてください:https://github.com/plataformatec/devise/wiki/How-To:-User-CanCan-+-Devise,-とても簡単です。 (自分自身を書いた) –
あなたは何もカスタマイズする必要はありません:D
取り除く:あなたの工夫モデルから登録可能に。
ユーザー コントローラ上のユーザー権限のためにあなたのユーザーCRUD *(ちょうど足場ユーザー)
使用カンカンを作成します。
*ユーザーCRUDを作成する方法の工夫のWikiをチェックし、あなたが
- 1. Deviseを使用してサインアップを管理者に制限する方法
- 2. Wordpressの管理者メニューの制限
- 3. Devise管理者ロールを追加する
- 4. ファイル構成 - Devise管理者と管理者の名前空間
- 5. Liferay 6.2が管理者に結果の制限をポーリングする
- 6. Meteor.loginWithPasswordは管理者に限定する
- 7. ドメインベースネットワークのネットワーク管理者を制限する方法
- 8. Wordpressの管理者へのアクセスをIPアドレスで制限する
- 9. Devise:管理者だけがサインインできるようにする
- 10. JavaFX System.setProperty管理者権限
- 11. スクリプトの管理者権限
- 12. 管理者権限c#/ vb
- 13. 管理者は%AppData%の使用を制限できますか?
- 14. Deviseによるセキュアな管理者登録
- 15. Laravelで管理者に関連するAngularJsコントローラを制限する方法は?
- 16. スプリングブートセキュリティ - 制限付き/管理者アクセス用/オープンアクセス用?
- 17. django管理者用に表示されるエントリのクエリーセットを制限するInline
- 18. ユーザと管理者はDeviseでログアウトし、RSPECでテストする
- 19. system32/wow64フォルダ内のdllファイルに管理者制限を設定する
- 20. Azureクラウドでは、グローバル管理者と限定管理者なしでグループユーザーを管理する方法は?
- 21. セッション管理にdeviseを使用する
- 22. 管理者権限なしで強制的にプログラムを実行しますか?
- 23. Djangoの管理者はテーブル内のエントリに外部キーフィルタを制限します
- 24. 管理者権限のないNSISインストーラ
- 25. 管理者権限のないSFML 1.6
- 26. 管理者権限を持つJavaプロジェクト
- 27. Delphiの管理者権限D7 W7
- 28. easy_installを-U setuptoolsの管理者権限
- 29. 管理者権限のないWCFサーバー
- 30. firebaseサーバ管理者権限で認証
基本的には、コントローラのアクションを管理者ロールに制限する必要があります。このためにCanCanを調べることをおすすめします。単純な定義ファイルを使用してモデルのアクションを制限することができます。以下は素晴らしいreadmeとwikiのプロジェクトページです:https://github.com/ryanb/cancan –