如何从 Orchard CMS 中的代码或配方将权限分配给自定义角色?
How to assign Permissions to custom Roles from code or recipe in Orchard CMS?
上下文
我正在使用扩展的 Orchard CMS 实现一个站点。我的问题是当我尝试将 Orchard 的现有权限分配给自定义配方中的自定义角色时。
我在我的食谱中这样做:
<Roles>
<Role Name="Profesional" Permissions="AccessAdminPanel,EditOwnContent,DeleteOwnContent,ViewOwnContent,ManageOwnBlogs,EditOwnBlogPost,EditBlogPost,PublishOwnBlogPost,PublishBlogPost,DeleteOwnBlogPost" />
<Role Name="Manager" Permissions="AccessAdminPanel,PublishContent,DeleteContent" />
</Roles>
问题
当我在启用这些功能之前放置代码时,一些权限似乎被覆盖了,因为博客权限从 Profesional 角色中消失了。
<Roles>
same above
</Roles>
<Feature enable="..." />
并且当将 Roles 标签移动到我的菜谱末尾时,代码在我的自定义模块上设置的权限会被菜谱末尾的代码覆盖。
这里有什么问题?有没有更好的方法来实现我的目标?
通过从 Orchard.Roles 调用角色服务,在代码中分配角色非常简单。
也看看命令,这样你就可以看到如何从你的食谱中设置命令,因为我认为你从导出硬编码角色中得到了想法...
也可以通过实现 IPermissionProvider 从模块添加权限。就像您可以使用任何 Orchard 功能一样。
通常您会在模块中看到 Permissions.cs。
我也在迁移和事件中创建了角色。
如果您要使用迄今为止从未用于设置角色和权限的方法,我会使用 Command 元素。
你看过Orchard.SetUp了吗?
启用您喜欢的任何功能,如果您的自定义模块不处理角色创建,请使用您的配方中的命令元素。
如果您要附加的权限来自非自定义模块,我会怎么做。
或者,因为您似乎手头有一些公司规则;你可以创建一个模块来抽象所有这些。
希望对你有帮助
上下文
我正在使用扩展的 Orchard CMS 实现一个站点。我的问题是当我尝试将 Orchard 的现有权限分配给自定义配方中的自定义角色时。
我在我的食谱中这样做:
<Roles>
<Role Name="Profesional" Permissions="AccessAdminPanel,EditOwnContent,DeleteOwnContent,ViewOwnContent,ManageOwnBlogs,EditOwnBlogPost,EditBlogPost,PublishOwnBlogPost,PublishBlogPost,DeleteOwnBlogPost" />
<Role Name="Manager" Permissions="AccessAdminPanel,PublishContent,DeleteContent" />
</Roles>
问题
当我在启用这些功能之前放置代码时,一些权限似乎被覆盖了,因为博客权限从 Profesional 角色中消失了。
<Roles>
same above
</Roles>
<Feature enable="..." />
并且当将 Roles 标签移动到我的菜谱末尾时,代码在我的自定义模块上设置的权限会被菜谱末尾的代码覆盖。
这里有什么问题?有没有更好的方法来实现我的目标?
通过从 Orchard.Roles 调用角色服务,在代码中分配角色非常简单。 也看看命令,这样你就可以看到如何从你的食谱中设置命令,因为我认为你从导出硬编码角色中得到了想法...
也可以通过实现 IPermissionProvider 从模块添加权限。就像您可以使用任何 Orchard 功能一样。 通常您会在模块中看到 Permissions.cs。
我也在迁移和事件中创建了角色。
如果您要使用迄今为止从未用于设置角色和权限的方法,我会使用 Command 元素。
你看过Orchard.SetUp了吗?
启用您喜欢的任何功能,如果您的自定义模块不处理角色创建,请使用您的配方中的命令元素。
如果您要附加的权限来自非自定义模块,我会怎么做。
或者,因为您似乎手头有一些公司规则;你可以创建一个模块来抽象所有这些。
希望对你有帮助