Orchard CMS - 将页面限制在特定层 - 如何?

Orchard CMS - limiting pages to only a specific layer - how?

真的很傻——但我似乎还找不到解决这个问题的方法....

我在 Azure 中安装了 Orchard CMS - 非常有效,添加了一些页面,四处游玩,观看了 Pluralsight "Orchard Fundamentals" 课程 - 似乎很有意义。

但现在我被卡住了 - 我正在尝试创建一个面向 public 的网站,其中一些页面应该对包括匿名用户在内的任何访问者可见,当然还有一些应该对只有经过身份验证的用户。

好的,所以我知道这些 正在发挥作用 - 每个人 default,经过身份验证的用户 authenticated - 太好了。但是我如何限制在我的仪表板中显示为 Content 的给定页面,以便它仅显示在给定层上(例如仅在 authenticated 层上 - 而不是 default层给大家)

似乎是一项简单的任务 - 但我似乎无法找到完成它的方法(任何文档或教程视频也没有真正帮助 :-( )

有人要吗?

图层仅适用于小部件。为了限制对页面等内容项的访问,您需要的是内容项权限。这是一项单独的功能,默认情况下未启用。

启用内容项权限模块

  1. 在管理面板中转到 Modules

  2. 开始在选项卡左上角的 filter 框中输入 permissions

  3. Content Item Permissions 应显示在列表中,单击其框右上角的 Enable

这将重新加载页面,您应该会在顶部看到一条消息说 Content Item Permissions was enabled

为您的页面启用此功能

Orchard CMS 使用一个概念,您可以将组件粘合在一起,但是您希望它们组合在一起,以便它们支持您想要的功能。页面的概念只是 collection 部分,如页面标题、url、文本、设置发布日期等。

默认情况下,简单地启用该模块没有任何区别。您需要将该功能添加到页面内容。为此,您只需要:

  1. 在管理面板中转到 Content Definition

  2. 查找/过滤 Page 内容类型并单击右侧的 Edit

  3. 向下滚动到 Parts 并单击 Add Parts

  4. 在列表中搜索Content Permissions,勾选复选框并按页面底部的Save

  5. 您将返回到 Page 内容定义屏幕。在 Parts 列表的底部,您现在将看到一个 Content Permissions 条目。如果您想为新页面设置默认值,请单击 header 左侧的 > 小箭头,然后会展开一个面板。

如果您想将其添加到博客文章等其他内容类型,则可以重复此过程并将其添加到您想要的任何内容类型。

为单个页面设置密码保护

现在该功能已启用并附加到您的 Page 内容类型,您可以按照以下步骤创建新的私人页面:

  1. 在管理面板中单击边栏中的 New > Page

  2. 给页面一些基本内容

  3. 向下滚动到页面末尾并勾选标记为 Enable Content Item access control

  4. 的复选框
  5. 假设您想让匿名用户无法看到该页面。在 View this item 部分下,勾选除 Anonymous(列表中的第二个)

  6. 之外的所有角色
  7. 发布页面

  8. 打开一个新的隐身/in-private 浏览器选项卡(因此网站认为您没有登录)并访问您刚刚发布的新页面。

    您将被重定向到类似于此页面的错误屏幕:

您需要启用内容项权限功能,以便将个别内容项限制为特定权限。对于图层,您只能在满足图层规则时使小部件出现在主题中定义的不同区域中。

要启用内容项权限功能,请转到您的管理仪表板并单击左侧的 "Modules"。在模块页面的过滤器文本框中输入 "Content Item Permissions" 以帮助查找功能。单击右上角功能的启用按钮。现在将启用该功能。

现在您已启用该功能,您需要将内容权限部分添加到您的内容定义之一。为此,请单击管理仪表板左侧的 "Content Definition"。找到您要为其添加权限的内容类型(例如,页面),然后单击编辑按钮。单击添加部件按钮。您将看到可以添加到内容类型的部分列表。选中内容权限旁边的复选框,然后单击保存。

接下来,在管理仪表板中转到属于您刚刚添加了内容权限部分的内容类型的内容项之一。您将在底部看到一个新的复选框以启用内容项访问控制。单击复选框,您将能够为该内容项设置不同的角色。

编辑: 看来我写回复的时间太长了。 rtpHarry 的编辑答案非常相似,但格式更好。