如何限制使用视图创建的视频库中显示的节点URL的直接访问? -- views 领域 和 nodes 领域 和 users 领域 drupal 相关 的问题

How to limit direct access to URLs of nodes that are shown in a video gallery created with Views?


10
vote

问题

中文

我使用了使用 视图 。但我只希望公开可以访问的页面并阻止单独访问每个视频。

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

英文原文

I have made a video gallery using Views. But I only want that the page accessible to public and prevent access to each of the videos individually.

The videos had to be created as a type of content, so all of them have accessible ULRs like /content/video-1, etc.

        

回答列表

5
 
vote
vote
最佳答案
 

try 内容访问模块并阻止单独访问 video 内容(或者也可以设置访问对您来说,您希望 roles

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

也可以使用节点查看权限模块,但我建议使用 Content access module

(如果您想要使用drupal工作以备将来更好地涉及使用此有用模块)

 

Try content access module and prevent access to video content individually( or also you can set access to it for you desire roles )

This module allows you to manage permissions for content types by role and author. It allows you to specifiy custom view, edit and delete permissions for each content type. Optionally you can enable per content access settings, so you can customize the access for each content node.

Also you can use Node View Permissions module, but I suggest use Content access module.

(if you want work with drupal for future is better getting involve with this useful modules)

 
 
 
 
3
 
vote

安装节点视图权限

节点视图权限模块启用"查看自己的内容" 权限 在权限页面上为每个内容类型进行"查看任何内容" 在Drupal 6。

现在转到权限页面并删除查看来自视频内容类型匿名用户的任何内容权限。

如果您只需要在匿名用户访问视频库中只有少数视频,然后安装拒绝访问模块。
 

Install Node View Permissions module.

Node view permissions module enables permissions "View own content" and "View any content" for each content type on permissions page as it was on Drupal 6.

Now goto permission page and remove View any content permission from video content type for Anonymous user.

In case you want only few of the videos from Video gallery to be accessible to the anonymous user, then install Deny Access module.

 
 
1
 
vote

只是更新您的内容类型。

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

  2. 仅适用于要显示的那些视频的该字段的值。

  3. 转到视图设置并设置;

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

    其中x是您想要显示

  4. 的编号 然后

    然后通过显示顺序进行排序

希望它会起作用。

 

Just update your content type.

  1. Add a numeric field like display_order etc.

  2. Set value of this field only for those videos you want to show.

  3. Go to your view settings and set;

    Use pager:Display a specified number of items | x items

    where x is the no.of videos you want to show

  4. Then apply sorting by display-order

Hope it will work.

 
 
1
 
vote

我认为兔孔模块正好完成您正在寻找的内容。这是模块的描述页面回答您的需要的摘录。祝你好运。

兔孔是一个模块,它增加了在自己的页面查看实体时应该发生的事情的能力。

也许您有一个内容类型,永远不会在其自己的页面上显示,如在旋转木马中显示的图像内容类型。兔孔可以通过节点/ xxx阻止此节点可在其自己的页面上访问。

 

I think the Rabbit Hole module does exactly what you're looking for. Here's an excerpt from the module's description page answering your need. Good luck.

Rabbit Hole is a module that adds the ability to control what should happen when an entity is being viewed at its own page.

Perhaps you have a content type that never should be displayed on its own page, like an image content type that's displayed in a carousel. Rabbit Hole can prevent this node from being accessible on its own page, through node/xxx.

 
 
1
 
vote

go for 兔孔模块,它完全相同。所有内容都可以通过视图/代码访问,但是当您尝试访问详细信息页面时,它就可以访问拒绝,或者您可以设置重定向。

 

Go for rabbit hole module, it does exactly the same. All the content is accessible via views/code but when you try to access the detail page "content/***" it is either access denied or you can set a redirect.

 
 
 
 
0
 
vote

1)在内容类型中创建一个 boolean 值字段。

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

3)写一些 css ,隐藏类不存在的视频。

 

1) Create a Boolean value field in your content type.

2) If value is selected as true a unique class should be added to that video field, if value is selected as false the class should not be added to that video field.

3) Write some CSS to hide the videos where the class is not present.

 
 
0
 
vote

使用规则模块您可以实现一个看起来类似的规则:

  { "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 将被重定向到带有路径 99887662 的页面,并且将显示相关的错误消息(调整此路径以适合您自己的路径约定,并查看要显示的消息)。

上述规则仅限于对相对路径的访问 content/video-1 (如您的问题)。如果要将规则扩展到类似的URL,请将 998887664 更改为 99887665 ,或适合您路径命名约定的任何变体。

上述规则不是(又一)考虑到仅适用于仅使用所选角色的用户的规则操作。但对于任何人有点熟悉规则模块,这是一个直接的"条件" 添加......例如:通过添加规则来跳过具有代码的角色,管理员等的角色的规则操作像"用户没有角色管理员(和/或编辑器)" 的条件。这样一种特殊的用户仍然可以查看这些节点(如果没有这种额外的条件,它们也无法再查看此类节点......)。

要在您自己的网站上进行实验,只需复制上面的整个规则代码,并在您的网站上的新规则中粘贴到您的网站上的新规则,通过"导入" 函数创建(如果启用了规则UI,可用)。然后进一步编辑/细化以使其适合您自己的环境(例如"抱歉,..." 消息)。

额外的细化

在其他一个答案中,您添加了包含此内容的注释:

......我想在某些情况下重定向到主页,在其他情况下404等,所以我有更好的控制...

如果这是您也想做的,那么您可以通过添加条件规则模块也。有了这个,对于您的每个"某些情况" ,您可以指定要重定向到的适当URL。请参阅"如何根据列表框的值设置某些字段的值?" 用于如何在规则操作中使用此模块的图示。

 

Using the Rules module you can implement a rule that looks similar to this:

{ "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" } }     ]   } } 

Anybody trying to access relative path content/video-1 will be redirected to a page with path no_access, and a related error message will be shown (adapt this path to fit your own conventions, and review the message to be shown).

The above rule only restricts access to relative path content/video-1 (as in your question). If you want to expand the rule to similar URLs, change content\/video-1 to something like content\/video-\\d+$, or any variation that fits the naming convention of your paths.

The above rule does not (yet) take into account to only apply the Rules Action for users with selected roles only. But for anybody a bit familiar with the Rules module, that is a straight forward "Condition" to add ... eg: skip the rules action for users with a role like editor, administrator, etc. Which you can do by adding a Rules Condition like "user does NOT have role administrator (and/or editor)". That way those kinds of special users can still view such nodes anyway (without such extra condition they also cannot view such nodes anymore ...).

To experiment with this rule in your own site, just copy the entire Rules code above, and paste it in a new Rule in your own site, created via the "Import" function (available if Rules UI is enabled). Then further edit/refine to make it fit in your own environment (e.g the "Sorry, ..." message to be shown).

Additional refinement

In one of the other answers you added a comment that includes this:

... I wanted to redirect to home page in some cases, 404 in others, etc., so I had better control ...

If that's what you also want to do, then you can further refine the above Rules Action by adding the Conditional Rules module also. With that, for each of your "some cases" you can then specify the appropriate URL to redirect to. Refer to my answer to "How to set the values of some fields depending on the value of a list box?" for an illustration of how to use this module within a Rules Action.

 
 

相关问题

0  无法添加自定义字段以查看  ( Unable to add custom field to view ) 
我创建了一个名为'newsletters'的新内容类型,并创建了图像,文本和链接字段。 然后我创建了一个视图块,当我尝试插入我的自定义字段时,它们不会在字段列表中显示。我检查了我的模块和文件夹的权限,以便不应该是问题,日志中没有错误。 有点令人困惑。 Drupal 7.41 PHP 5.4.45. 查看7.x-3....

2  如何在视图中使用或运算符?  ( How to use the or operator in views ) 
如何创建一个显示的视图,该视图将显示"会计" 类型的所有内容以及分类学术语"会计" (任何内容类型)的所有内容? 我正在尝试使用 Type: Accountancy 或 Taxonomy: Accountancy 但这只是显示分类节点。唯一工作的过滤器是三角洲。 谢谢елин& Morbid - 你们...

0  日历 - 添加与上下文日期过滤器的关系  ( Calendar adding relationship to contextual date filter ) 
我想为某个学生创建一些Inthips的日历视图。但是,当我更改上下文(日期)过滤器来使用关系时,日历中没有显示结果。 当我在列表中构建类似的视图页面而不是日历视图模式时,使用相同的过滤器,结果会返回。 下方的图像我尝试在上下文过滤器中获取关系。 ...

0  如何以视图中编程方式添加链接到图像字段  ( How to programmatically add a link to an image field in a view ) 
我有一个映像字段和其他字段的视图,我需要链接渲染的图像,而不是配置选择的内容,而是在另一个计算的过滤的视图上。 我认为我应该使用 my_theme_preprocess_views_view_field_myviewname 来捕捉这个字段,使用它的名称作为选择器,然后将其包装在计算的链接中,但没有找到如何做到这一点...

1  视图PDF未生成自定义样式PDF输出  ( Views pdf not generating custom style pdf output ) 
我无法打印我的CSS样式内容以呈现PDF输出,我正在使用视图pdf 项目的模块,我的观点正在呈现我的风格,但是当PDF产生没有样式输出时。 需要任何帮助。 ...

1  列出所有录制在节点上的所有用户的评分  ( List all users who voted on a node with their ratings ) 
我正在使用 fivestar 模块在节点上投票。对于每个节点,我想创建一份投票的用户列表,并在给出的评级上进行投票。我正在尝试使用意见3 但我没有看到任何可以给我这个的关系。 我尝试在视图中使用节点基表和用户基表进行此操作。 任何想法我如何要去这个? ...

1  从公开过滤器中的其他内容类型获取标题字段  ( Get title field from another content type in exposed filter ) 
我有两个内容类型: Project 和 Task 。 Project 有一个节点参考字段 Task - 创建 99887669 时,您会添加对项目之一的引用。 我需要创建一个 function mymodule_views_query_filter(&$view, $query) { if($view-...

0  添加描述以查看手风琴  ( Adding a description to view accordion ) 
我使用的是格式视图手风琴的视图。 到目前为止,我的景色如下所示: 奖励1 -Person1 -Person2 ...... 奖励_N -person_n -person_n + 1 其中奖励是手风琴动作的"标题" 或"触发" 。 这正按预期工作。我正在尝试进一步扩展它来看起...

4  如何基于身体中的字符数显示视图块?  ( How to display a view block based on number of characters in body ) 
我目前有一个视图,它会创建"关于作者" 框,从用户的配置文件中提取信息,并根据节点(内容)的作者显示相应的作者框。我只想在节点中具有最小字符量的节点上显示它。 (它目前显示所有节点,块已启用。) 所需的结果是长块内容有一个"关于作者" 框,而短件的内容没有。 我所拥有的问题是,当我选择视图的过滤条件时,未列出节点的主...

1  视图标签过滤器  ( Views tag filter ) 
我似乎无法让我的标签过滤我打算他们的工作方式。 我想要做什么: 我有一个词汇,通过附加到文章内容类型的标签字段创建。 我有一个内容类型foo,我正在创建一个观点,以列出与foo标题相对应的标记的'文章' 前: 文章类型: 1 - 标签:'yay你' 2-标签:'yay me' foo类型 1 - 标题:'Yay...

1  视图和面板:从视图中排除已显示的项目  ( Views and panels exclude already displayed items from view ) 
我在FrontPage上有两个视图,第一个是一个画廊,它只能显示"促进到FrontPage" 的文章检查。第二个视图应显示除了第一个视图中显示的所有文章。 我看到这个问题,但答案并没有帮助我,因为在第二个视图中,我不想排除" 升到FrontPage"的文章,我只是想要为了排除其中的前6个,所有其他应似乎与其他物品混合...

1  将网站导出到CSV,JSON,电子表格等的所有视图  ( Export all views on a site to csv json spreadsheet etc ) 
问题。 如何从Drupal网站导出记录的所有视图的电子表格? 更多信息: 假设您想要一个站点上所有视图的摘要,也许您将重建它们 - 也许那里有一些iffy php_views。也许你只是记录一个你继承的杂乱网站。 虽然有支持将单个视图导出到各种格式,但导出对电子表格的全部视图的全面列表并不容易。 ...

2  过滤器包含完整的单词吗?  ( Is filter contains all words working well ) 
我有一个视图和过滤器,"包含所有单词" 。我看到SQL包含表达式 '%word1%' AND '%word2%', 但是,如果我写"角度" ,就在我开始写作"A" 时,也有字符A且不一定从A开始的单词出现,例如"物质" 。 不应该占位符%只在一个地方,以这种方式: LIKE ( 'word1%' AN...

1  如何使用Search API SEAVED搜索模块查看模块? [关闭]  ( How use search api saved searches module for views ) 
关闭。这个问题需要详细信息或清晰度。它目前不接受答案。 想要改进这个问题?添加详细信息并阐明编辑此帖的问题。 关闭 4年前。 ...

1  如何在视图中更改输出字段日期?  ( How to change the output field date in a view ) 
我想在视图中改变字段'日期'以使用' hook_views_query_alter '只显示年份,以便我只能在日期字段中显示一年。 我正在尝试以下代码,这不起作用。任何人都可以帮助我吗? 我不确定为代码中的字段分配新值。 function alb_jobs_views_query_alter(&$view, &$...

2  如何创建报告以列出仅更改特定字段的用户?  ( How to create report to list users who change only specific field ) 
我有一个包含多个字段的内容类型,这些字段由不同的用户随时间手动更新。 让我们说,例如,内容类型名称 票证 此内容类型中的字段是: 票证状态 票证已解析日期 票升级日期(默认为空) 每次用户更改字段时,会自动创建修订版。 如何创建报告(使用 measies 模块)列出用户只会将字段"票升级日期" 更改为空到某个值...

0  输出视图_embed_view到Ajax内容  ( Output views embed view to ajax content ) 
我有一个视图块。我可以用 views_embed_view 函数打印内容,传递 $ display_id ,上下文过滤器等。 现在我希望用户单击图像中的一个点,并使用JavaScript,显示DIV中的块。因此,当用户单击图像的不同坐标时,我在该DIV中显示了不同的产品详细信息。 这应该可以使用ajax( $(#di...

1  如何设置视图以显示不复制其他文件的现场集合条目?  ( How to set views to show field collection entries with not duplicated other file ) 
我有两个内容类型的字段。一个是"链接" ,其他是"文件& text" (字段集合;值数:无限制),具有两个字段:"文件" 和"文本" 。 关系: 内容:"文件&文本" 问题是:每个"文件&文本" 条目重复"链接" 字段。 我尝试了查询设置/拼凑而是,而不是进行任何进展。 任何提示? ...

3  在结构>块>配置下添加视图块的配置选项  ( Add configuration options for views block under structure blocks configure ) 
我正在构建一个模块,它定义了几个块,并通过 hook_block_configure() 。这些块中的两个是由scratch使用 hook_block_info() 及其在 hook_block_configure() 显示如预期的。换句话说,如果您导航到结构>块并单击配置这两个块中的任何一个,自定...

1  使用视图列出成员的有机组,具有继承的会员资格  ( Using view to list a members organic group with inherited membership ) 
我正在寻找一个返回用户具有成员资格的内容的视图。 从另一个帖子中执行以下步骤,我设法返回与用户成员身份匹配的内容。但这并没有考虑成员资格的内容。因此,连接到另一个节点的受众的节点未显示在视图中。 采取的步骤: 添加新视图。 Show -> OG membership ( 重要! ) 然后在某些显示中添加上下文过...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.