2

Deviseを使用してRailsでサービスを構築しています。このサービスでは、「admin」ユーザーが組織アカウントに通常のユーザーを追加する必要があります。ログインした管理者ユーザーが通常のユーザーアカウントを作成しようとすると「:require_no_authentication」メソッドが呼び出されるため、Deviseのデフォルトの動作はこれをサポートしていません。

私が探している機能を実現するための推奨される方法は何ですか?

  • :require_no_authenticationは、RegistrationsControllerメソッドの1つではなく、Devise :: RegistrationsControllerクラスのprepend_before_filterによって呼び出されるため、これをオーバーライドできるかどうかはわかりません(間違っている場合は修正してください)。
  • 管理者ユーザーを通常のユーザーから分離することは機能すると思いますが、これらのユーザーは非常によく似たプロパティを共有するため、これを行うと不必要な繰り返しが追加されると思います。
  • 私は現在、「users#new」および「users#create」コントローラーアクションを使用した通常のDeviseサインアップフローを使用して、新しい管理者ユーザー(通常のユーザーが属する組織を作成する)を作成しようとしています。 'users#add'アクションを介してユーザー。

私のニーズにより適した別の優れたユーザー認証の宝石がおそらくある場合は、それに切り替えることを検討したいと思います。

4

1 に答える 1

3

これは、認証の問題というよりも、承認の問題のようです。cancanなどの承認gemを使用して、ユーザー(adminなど)に役割を割り当て、それらの役割に機能を付与できます。これは、Deviseと一緒に非常にうまく機能します。チュートリアルは次のとおりです。

http://www.tonyamoyal.com/2010/07/28/rails-authentication-with-devise-and-cancan-customizing-devise-controllers/

編集:私はあなたの問題を誤解したかもしれないと思います。たぶん、必要なのは、Deviseコントローラーの外部でのユーザーの作成を処理するための別のコントローラーです。cancanを使用して、このコントローラーへのアクセスを管理者のみに制限できます。

于 2013-01-19T22:27:48.567 に答える