我有一个自定义模块,它用几乎相同的代码替换默认的 RolesBasedAuthorizationService,除了启用我的自定义模块时,它将从服务而不是用户中提取角色。启用该服务涉及在“设置”中填写信息并选中一个框。
由于在使用我的自定义模块时角色被替换(并且功能已启用),我想在“编辑用户”页面上隐藏角色。在了解位置信息之后,我可以在自定义模块的位置信息中使用以下内容成功隐藏角色列表:
<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
- 我希望将它放入模块中,但我会等到它以默认方式(在主题中)工作。
所以我现在的问题是:为了找到和使用包装器,我缺少什么?