デフォルトの RolesBasedAuthorizationService をほぼ同じコードに置き換えるカスタム モジュールがありますが、カスタム モジュールを有効にすると、ユーザーではなくサービスからロールがプルされます。サービスを有効にするには、[設定] に情報を入力し、ボックスをチェックする必要があります。
カスタム モジュールを使用すると (そして機能が有効になると) ロールが置き換えられるため、[ユーザーの編集] ページでロールを非表示にしたいと考えています。配置情報を理解するに従って、カスタム モジュールの placement.info で以下を使用して、ロール リストを正常に非表示にできます。
<Match ContentType="User">
<Place Parts_Roles_UserRoles_Edit="-" />
</Match>
ただし、モジュールの機能が有効になっている場合は常にリストが非表示になります。しかし、機能が魔法のように機能するために必要なことは、機能を有効にすることだけではありません。チェックボックスもチェックする必要があります (サービスベースの認証を有効にする前に、必要な設定を入力する機能を提供します)。したがって、同じドキュメントを続けて、ラッパーを作成して次のように適用できます。
<Match ContentType="User">
<Place Parts_Roles_UserRoles_Edit="Content:10;Wrapper=Wrapper_HideIfCondition" />
</Match>
これにより、次のようにロール リストをラップできるようになります。
<div style="display: block">
@Model.Html
</div>
display: block
現在、ラッパーが呼び出されていることを確認するために使用しています。ただし、役割の一覧は表示されなくなります。Orchard がラッパーを見つけられていないようです。cshtml
ファイルは次の場所にありますMyCurrentTheme\Views\Wrapper.HideIfCondition.cshtml
- モジュールに入れたいと思っていましたが、デフォルトの方法で (テーマで) 動作するようになるまで待ちます。
したがって、私の現在の質問は次のとおりです。ラッパーを見つけて使用するために何が欠けていますか?