什么是访问记录“ content_access:all”?这是我的分类学访问模块的覆盖

drupal.stackexchange https://drupal.stackexchange.com/questions/1171

  •  16-10-2019
  •  | 
  •  

自从我上次重建权限以来,我的权限遇到了问题。 (我在处理用户参考权限后做到了这一点。此字段没有用户参考)

分类法的优先级相同0。实际上,所有访问模块的优先级为零。当我转到可以看到的页面即使不应该看到的页面时,它显示以下内容是授予查看页面的访问:

enter image description here

我认为我必须让人们默认地访问查看页面,然后如果分配分类法,则将其删除。我以前有这个工作,我不明白为什么它停止工作。

我该怎么办才能解决这个问题?我已经有几个小时了,有点困难。

我安装了有关权限的以下模块:

  • 内容访问
  • 节点访问用户参考
  • 分类学访问控制

我不确定是否相关,但是当我悬停在删除上说:

DNA和核心似乎在此项目上不同意。这是其中任何一个的错误,应该修复!尝试将此节点视为此用户,并检查是否仍然存在分歧。

有帮助吗?

解决方案

您看到的访问记录可能是Drupal使用的默认访问权限,据我所知,只有在没有模块实施节点访问权限的情况下才使用。
node_access_rebuild()node_access_acquire_grants() 两者都添加该访问记录,如果没有模块实现任何节点访问钩子,或者没有模块返回任何访问记录。

function node_access_rebuild($batch_mode = FALSE) {
  db_query("DELETE FROM {node_access}");
  // Only recalculate if the site is using a node_access module.
  if (count(module_implements('node_grants'))) {
    // …
  else {
    // Not using any node_access modules. Add the default grant.
    db_query("INSERT INTO {node_access} VALUES (0, 0, 'all', 1, 0, 0)");
  }

  if (!isset($batch)) {
    drupal_set_message(t('Content permissions have been rebuilt.'));
    node_access_needs_rebuild(FALSE);
    cache_clear_all();
  }
}

我不建议从节点访问表中删除该访问记录,否则没有特定权限的用户将无法查看模块没有节点访问记录的任何节点。在Drupal中,默认情况下拒绝对节点的访问。实际上,节点模块在节点访问表中写入仅允许访问节点的记录。

更新: 正如您报道的那样,您也在使用 内容访问, ,您可能对此问题报告感兴趣: 不要劫持“全部”领域.
您注意到的访问记录可能是添加的记录 内容访问;模块的简短名称是content_access,并且模块可能将其用作授予领域。

我认为我必须让人们默认地访问查看页面,然后如果分配分类法,则将其删除。

由于Drupal节点访问的工作,默认情况下会拒绝访问,并将其授予该模块授予它的节点;这与您的工作相反。
对于具有特定权限的用户仍然允许访问,这在Drupal 6中意味着用户 管理节点 许可,并且未经特定许可而不允许用户,这在Drupal 6中表示没有 访问内容 允许。

许可以下: CC-BY-SA归因
scroll top