bbpress每个论坛的用户角色或功能

时间:2018-03-21 14:28:16

标签: wordpress user-roles bbpress

我试图设置具有扩展用户功能的bbpress。

问题

我的目标是用户需要在每个论坛中拥有不同的功能,即:

  • UserA 无法访问 ForumW
  • UserA可以仅读取主题并在ForumX中回复
  • UserA可以在ForumY
  • 创建主题并撰写回复
  • UserA可以适度 ForumZ

插件

这些是我到目前为止尝试的插件,但没有成功:

  • 终极会员,官方1.7和新2.0版本 https://ultimatemember.com/
    他们声称他们正在为UltimateMember v2进行群组扩展工作,这看起来很有希望,但截至目前还没有发布日期,我仍然不知道这个扩展是否会解决我的问题。

  • itthinx群组插件
    http://docs.itthinx.com/document/groups/
    允许我为用户和论坛分配多个组,但仍有一个问题。

首次尝试

由于itthinx Groups插件允许我为UserA分配多个组,这很棒,但它仍然无法解决我的问题。

所以,我试过这样的事情:

  • ForumX已分配以下群组:ForumX_readersForumX_writersForumX_moderators

  • UserA分配了以下群组:ForumX_readersForumY_writersForumZ_moderators

但问题是,由于UserA属于具有publish_repliesmoderate功能的群组,因此他可以完全访问ForumX。

所以我需要的是论坛组和用户组的交集 - 在这个例子中是ForumX_readers

有希望的部分,但......

我深入研究了插件的代码,找到了基于其指定组处理用户功能的行,并迅速尝试获取当前论坛组,以实现交集。

不幸的是,我无法访问此部分代码中的global $post$_GLOBALS['post']$_REQUEST[]变量。既不是直接也不是apply_filters()函数,我自己实现了代码的一部分。

更新: 我能够获得get_posts()的ID和当前论坛/主题的slu ..

所以,我的问题

我的第一次尝试是否有任何解决方案,我可能已经监督过了?

如果没有,是否有任何其他插件可以解决我不知道的问题?

或者在bbpress中甚至不可能这样?

1 个答案:

答案 0 :(得分:0)

经过一些进一步的研究和试验&错误,我终于明白了。

要做的第一步是设置功能,在我的例子中看起来像这样。

{{3}}

在plugins目录中,有文件 SELECT bukrs, kunnr, dmbtr, COUNT(*) AS accd_count INTO TABLE @DATA(git_double) FROM bsid WHERE bukrs = '1000' AND blart = 'WP' AND budat IN @s_budat AND gjahr IN @s_gjahr GROUP BY bukrs, kunnr, dmbtr HAVING COUNT(*) > 1. core/class-groups-user.php函数将为用户检索分配的组,并设置相应的功能。

为了不使用core-plugin,我在init_cache()变量中应用了一个过滤器,可以在 line:415 中找到。

$group_ids

然后我创建了一个新的插件,它挂钩到这个过滤器。

foreach( $user_groups as $user_group ) {
    $group_ids[] = Groups_Utility::id( $user_group->group_id );
}

// added this line
$group_ids = apply_filters('filter_user_group_ids', $group_ids);`