如何限制对使用Views创建的视频库中显示的节点的URL的直接访问?


10

我已经使用Views创建了一个视频库。但我只希望该页面可以公开访问,并禁止分别访问每个视频。

视频必须作为一种内容创建,因此所有视频都具有可访问的ULR,如/content/video-1等。

Answers:


5

尝试使用内容访问模块,并防止video单独访问内容(或者您也可以根据需要设置对它的访问roles

该模块允许您按角色和作者管理内容类型的权限。它允许您指定每种内容类型的自定义视图,编辑和删除权限。(可选)您可以启用每个内容访问设置,以便可以自定义每个内容节点的访问。

您也可以使用“ 节点视图权限”模块,但我建议使用Content access module

(如果您想与drupal一起工作,以便将来更好使用这个有用的模块)


几乎是我所需要的。最终,我确实通过低级控制了访问,因为在某些情况下想重定向到主页,在其他情况下则想返回404,所以我可以更好地控制,但是我认为该模块在大多数情况下都可以工作。在我的情况下,也许可以进行更好的调整,但没有时间进行调查。
Cesar 2015年

3

安装节点视图权限模块。

节点视图权限模块启用权限页面上的每种内容类型的权限“查看自己的内容”和“查看任何内容”,就像在Drupal 6上一样。

现在转到页的权限和删除查看任何内容从视频内容类型允许匿名用户

如果您只希望匿名用户访问“视频库”中的视频,然后安装“拒绝访问”模块。


1

只需更新您的内容类型。

  1. 添加一个数字字段,例如display_order等。

  2. 仅为您要显示的视频设置此字段的值。

  3. 转到您的视图设置并进行设置;

    使用寻呼机:显示指定数量的项目| x件

    其中x是您要显示的视频数量

  4. 然后按显示顺序进行排序

希望它能工作。


1

我认为Rabbit Hole模块完全可以满足您的需求。这是模块描述页面的摘录,回答您的需求。祝好运。

Rabbit Hole是一个模块,它增加了控制在其自己的页面上查看实体时应该发生的情况的功能。

也许您有一种内容类型,它永远不应显示在其自己的页面上,例如轮播中显示的图像内容类型。Rabbit Hole可以阻止通过node / xxx在其自己的页面上访问此节点。


1

选择兔子孔模块,它的功能完全相同。所有内容都可以通过视图/代码访问,但是当您尝试访问详细信息页面“内容/ ***”时,要么拒绝访问,要么可以设置重定向。


我会兜风的,谢谢。目前,我已经从低层次解决了它,但是最好知道已经完成的自定义模块。
Cesar

0

1)在您的内容类型中创建一个布尔值字段。

2)如果value选择为true,则应将唯一的类添加到该视频字段;如果value选择为false,则不应将类添加到该视频字段。

3)编写一些CSS,以隐藏不存在该类的视频。


0

使用“ 规则”模块,您可以实现类似于以下内容的规则:

{ "rules_disallow_accesss_to_selected_urls" : {
    "LABEL" : "Disallow access to selected URLs",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "init" : [] },
    "IF" : [
      { "text_matches" : {
          "text" : [ "site:current-page:url" ],
          "match" : "content\/video-1",
          "operation" : "regex"
        }
      }
    ],
    "DO" : [
      { "drupal_message" : {
          "message" : "Sorry, access to URLs like [site:current-page:url] is not allowed ...",
          "type" : "error"
        }
      },
      { "redirect" : { "url" : "no_access" } }
    ]
  }
}

尝试访问相对路径的任何人都content/video-1将被重定向到带有path的页面no_access,并且将显示相关的错误消息(使该路径适应您自己的约定,并查看要显示的消息)。

上面的规则仅限制访问相对路径content/video-1(如您的问题)。如果您想将规则扩展到相似的URL,请更改 content\/video-1content\/video-\\d+$或类似符合路径命名约定的变体。

上面的规则(尚未)尚未考虑仅将规则操作应用于仅具有选定角色的用户。但是,对于任何熟悉“规则”模块的人来说,这就是添加的直接“条件” ...例如:跳过具有编辑者,管理员等角色的用户的“规则”操作。您可以通过添加“规则”来完成类似“用户没有角色管理员(和/或编辑者)”的条件。这样,那些特殊用户仍然可以查看此类节点(没有此类额外条件,他们也将无法查看此类节点...)。

要在您自己的站点中试用此规则,只需复制上面的整个“规则”代码,然后将其粘贴到您自己的站点中的新规则中即可,该规则是通过“导入”功能创建的(如果启用了规则UI,则可用)。然后进一步编辑/优化以使其适合您自己的环境(例如,显示“ Sorry,...”消息)。

进一步完善

在其他答案之一中,您添加了包含以下内容的评论:

...在某些情况下,我想重定向到主页,在其他情况下,则想重定向到404,因此我可以更好地控制...

如果那也是您想要做的,那么您还可以通过添加条件规则模块来进一步完善上述规则操作。这样,您就可以针对每种“某些情况”指定要重定向到的适当URL。请参阅我对“ 如何根据列表框的值设置某些字段的值? ”的答案,以获取有关如何在“规则操作”中使用此模块的说明。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.