首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Drupal如何让某些管理员只看到他们创建的用户

Drupal如何让某些管理员只看到他们创建的用户
EN

Stack Overflow用户
提问于 2014-10-11 03:03:24
回答 2查看 190关注 0票数 0

我使用Drupal 7,并希望这样做,但如果我需要使用Drupal 6,我会这样做。我有一个Drupal 7网站,我允许“顾问”创建认证用户。我是一个管理员在网站上,所以我看到和可以做任何事情。“顾问”所能做的就是创建和编辑经过身份验证的用户。是否有一种方法可以使视图显示特定顾问在登录时创建的用户?

如果你不明白我在说什么,让我这么说吧。我是网站的管理员,所以我可以做任何事情。我创建了一个名为顾问的用户角色。还为用户提供了一个经过身份验证的角色。顾问可以创建经过身份验证的用户。我有顾问1,顾问1创建了10个用户。我也有顾问2。顾问2创建了3个用户。我想要一个页面(很可能是用视图构建的--我以前在其他网站上使用过视图,所以我对它们很熟悉)--我想要一个Advisor 1一旦登录就可以登录的页面,它可以显示他们创建的所有10个用户。顾问1不会看到顾问2创建的用户。

这个是可能的吗?如果能在这方面提供任何帮助,我们将不胜感激。提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-11 15:24:58

我已经实现了类似的东西,我可以给你一些指导。首先,drupal 7不存储用户创建者的信息。因此,为了跟踪这一点,您需要将一个自定义字段附加到用户以保存此信息。

在这种情况下,您必须确保每个创建者只能在这个字段中插入自己,而不是其他任何人,否则您必须找到一种自动填充该字段的方法。我建议您使用字段权限模块来设置该字段的权限(用户可能甚至不应该有视图,创建者不应该更改它等等)和计算场模块,以便在创建时自动填充字段(如creator_field),例如使用创建者的uid。

最后,在创建视图时,可以使用creator_field上登录的用户添加上下文过滤。

你也应该看看有机组织。我没有用过,但可能会有帮助

希望能帮上忙。

已更新

添加

代码语言:javascript
运行
复制
  global $user;
  $entity_field[0]['value'] = $user -> uid;

到计算字段设置中的计算代码(PHP),并将值作为整数存储在“数据库存储设置”中。然后,在您的视图中,您应该添加一个带有creator_field上下文过滤器的用户视图。在上下文过滤器设置中,必须在“当筛选值不在URL”部分中,从登录用户中设置“->”用户ID。

票数 0
EN

Stack Overflow用户

发布于 2014-10-12 15:27:32

在Drupal 7中,可以通过向用户配置文件中添加一个指向用户创建者的字段(使用实体引用模块)来相对容易地做到这一点。Profile2可以提供在配置文件上使用此字段的快捷方式,但是如果这是您需要添加到配置文件中的唯一定制,那么在自定义模块中这样做会更干净。

可以将视图(视图模块)配置为输出以当前登录用户为创建者的用户列表。

您还需要为user_access添加类似的逻辑,以允许/限制概要文件编辑(如果当前用户是概要文件中引用的用户)。如果您计划拥有不同的管理级别,权限挂钩也可能很有用。

令牌模块应该通过将当前用户插入到字段中来为新用户插入此值。或者您可以在保存用户之前完成此操作。会有一些类似的事情:

代码语言:javascript
运行
复制
function mymodule_user_presave(&$edit, $account, $category) {
  if ($account->is_new) {
    global $user; 
    $created_by = $user->uid; 
    $edit['created_by'] = $created_by;
  }
}

祝好运。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26310627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档