GrailにAcegiプラグインを使用して新しいユーザーを登録すると、「デフォルトの役割が見つかりません」と登録するのはなぜですか。エラー

StackOverflow https://stackoverflow.com/questions/2049789

質問

おそらく別の方法で、Teh Acegiプラグインを使用してGrailsで新しく登録されたユーザーのデフォルトのセキュリティロールを設定するにはどうすればよいですか?

Acegi/Grailsのチュートリアルに従いました ここ コントローラー注釈を使用しています - 私はまだ何も確保していませんが。

web_userという2番目の役割を追加し、その役割にユーザーを正常に追加しました。

ただし、別の新しいユーザーでレジスタコントローラーを使用すると、Grailsからエラーメッセージが表示されます。 "Default role not found".

適切な作成方法でnullロールリストを処理するか、デフォルトのロール名を登録ビューから隠されたフィールドとしてバックバックすることで、これから大まかに自分の道をコーディングできる方法を見ることができましたが、それらは飾りを感じています。

ユーザードメインクラス自体で、またはユーザーとロールテーブルの間のデータベースの関係でこれを定義できるはずだと思います。

デフォルトの役割を定義するための意図的な意味と、なぜこのメッセージを受け取るのか。

ああ、そしてどのようにAcegiを発音しますか?

役に立ちましたか?

解決

これはドキュメントの問題です。登録ページは、パブリックサインアップページになると予想されるため、役割を選択することはできません。ユーザーを作成するときに少なくとも1つの役割が必要であるため、このワークフローに「デフォルト」ロールが構成されていることが期待されます。

「Defaultrole」属性を使用して、securityconfig.groovyでデフォルトの役割を設定できます。デフォルトでは「role_user」ですが、あなたが望むものは何でもできます。ユーザーが登録する前に、この値の権限インスタンスが必要です。

発音はFAQにあります - http://www.acegisecurity.org/faq.html

他のヒント

答えを見つけました。通常、Grailsの場合、role_userと呼ばれるデフォルトの役割があります。新しいユーザーを登録すると、その名前で役割を探し、それを見つけた場合はユーザーに割り当てます。

「デフォルトの役割が見つからない」というメッセージは、読み方を曖昧にします。

最初に、「新しく登録されたユーザーがそれに割り当てられるように、どこかでデフォルトの役割を定義する必要がある」ことを意味すると思いました。

しかし、それは本当に「通常の構成が機能するように役割_userと呼ばれる[ロール]テーブルにデータベースの行を作成する必要がある」ことを意味すると思います。

セキュリティ機能のGrailsの生成の一部は、どういうわけかデータベースBootstrapにRole_adminとRole_userを追加するだけで、エラーの可能性があると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top