我希望允许用户编辑具有相同分类术语的节点。
我为企业创建了一个分类法,并在用户配置文件中引用了它。我也在内容类型中使用了这种分类法。
我想知道是否允许用户只编辑具有相同分类术语的节点,如本例所示:
1 -企业: AAA2 -企业: AAA3 -企业:购买力平价在本例中:
1和2,并查看所有内容。3,请参阅all。我测试了分类法访问控制,但是我必须为每个企业创建一个角色来编辑具有相同术语的企业的节点。但我有100多家企业。
发布于 2017-08-24 15:01:38
几年前,我不得不为一个拥有1000多个内容提供商的D7站点这样做,这些网站只能在特定的领域发布。这是通过在用户配置文件上有一个受保护的节分类字段来实现的。
然后使用钩子_节点_访问测试节点是否有一个在用户配置文件上匹配的术语。
这是最基本的。
我认为我必须为节点创建表单执行一个自定义验证器,以检查它们是否正在创建具有已批准条款的节点。
我还认为,通过使用视图作为选择列表的来源,节点create、form和edit将术语列表缩减为仅允许的术语。
抱歉,我已经多年没有在那个网站上工作了,也没有代码了。
发布于 2017-08-24 15:34:26
有一个模块正好用于该ATB模块,仅用于D7,来自模块页:
为D7提供非常灵活的分层节点访问控制(内容访问控制)。支持以下标志:视图更新删除赠款基于用户->术语<-节点之间的关系。分类法术语作为公分母,允许在用户和节点之间建立多到多的关系。按层次组织分类法术语,这种方法将允许访问授予继承。当用户缺乏权限时,视图中的节点也会被过滤掉。非常简单,易于理解逻辑和很少的代码。使用大量的本机功能。使用任意数量的字段/词汇表来控制对任意数量的内容类型的访问。有自己的自动化测试。详细的帮助部分。
我已经将这个模块用于"group“站点,结合子用户模块,具有相同分类术语的用户和节点可以随意查看/更新/删除内容,这是在节点字段设置中完成的;但它有一个缺点,即存在核心区域设置模块冲突,这意味着您不能遍历站点。
发布于 2017-08-25 15:54:00
您可能不使用分类法访问控制模块(一个没有D8计划的D7模块.),而是尝试使用组模块,该模块允许为站点上的内容和用户创建任意集合,并对这些集合授予访问控制权限。
它可以在D7中使用,并且也有一个D8版本。它将组创建为实体,使其完全可部署、可扩展和可导出。每个组都可以附加用户、角色和权限(有关这方面的更多细节,请参阅"组模块所支持的各种角色是什么?“)。
对于这个特定的问题,您将启用gnode子模块,对于每个组类型,您将为不同的内容类型定义适当的权限(查看、编辑、删除等)。您可能希望创建一个组类型为"Enterprise",然后创建类似于分类法术语(AAA、PPP、.)的组。你所定义的。
对于组权限,您似乎希望授予对组中称为“成员”的内容的编辑访问权限。并将其与视图访问(=查看所有)结合起来,以便:
根据问题中的“我为企业创建了一个分类法并在用户配置文件字段中引用了它”,您可以使用该用户配置文件字段使特定用户成为特定组的成员。
这就是真正的“它”,不管您的问题是关于D7还是D8 (这两个问题都可以)。
有关组模块的示例配置,请参考我的回答中的"如何配置创建自定义LMS的访问权限?“。
https://drupal.stackexchange.com/questions/244531
复制相似问题