【问题标题】:wordpress limit user view of users with lower role permisionswordpress 限制具有较低角色权限的用户的用户视图
【发布时间】:2018-10-03 18:47:12
【问题描述】:

我无法在其中找到插件或任何相关信息。认为这应该很简单。我希望用户能够看到用户列表,但只显示具有相同或较小角色的用户。

例如 管理员可以看到所有用户 编辑器 编辑器可以看到作者和贡献者 Author 作者只能看到贡献者 贡献者和只看到订阅者

我添加了一些自定义角色,所以我的实际实现将是在股票 WP 角色之上的以下内容

管理员所有用户 经理(自定义角色)只能看到审阅者和业务 审阅者(自定义角色)只能做生意。 业务(自定义角色)无法访问用户列表(我已经在工作)。

【问题讨论】:

  • 终极会员是强烈推荐的插件。您可以尝试分配不同的角色作者、成员、贡献者、管理员。去吧
  • 已经在使用它了。问题是它仍然显示列表中的所有用户。较低级别的用户不能编辑、删除或添加较高级别的用户,但他们仍然可以看到这些用户。我需要它,以便他们只能在用户列表中看到较低级别的用户

标签: php wordpress roles wordpress-rest-api


【解决方案1】:

这行得通,它不完全是我想要的,因为它只是删除/隐藏特定用户而不是用户组。我将着手解决这个问题,并在有时间的时候尝试重写它以隐藏组。

add_action('pre_user_query','dt_pre_user_query');
function dt_pre_user_query($user_search) {
   global $current_user;
   $username = $current_user->user_login;

   if ($username != 'hiddenuser') {
      global $wpdb;
      $user_search->query_where = str_replace('WHERE 1=1',
         "WHERE 1=1 AND {$wpdb->users}.user_login != 'hiddenuser'",$user_search->query_where);
   }
}

add_filter("views_users", "dt_list_table_views");
function dt_list_table_views($views){
   $users = count_users();
   $admins_num = $users['avail_roles']['administrator'] - 1;
   $all_num = $users['total_users'] - 1;
   $class_adm = ( strpos($views['administrator'], 'current') === false ) ? "" : "current";
   $class_all = ( strpos($views['all'], 'current') === false ) ? "" : "current";
   $views['administrator'] = '<a href="users.php?role=administrator" class="' . $class_adm . '">' . translate_user_role('Administrator') . ' <span class="count">(' . $admins_num . ')</span></a>';
   $views['all'] = '<a href="users.php" class="' . $class_all . '">' . __('All') . ' <span class="count">(' . $all_num . ')</span></a>';
   return $views;
}

【讨论】:

    猜你喜欢
    • 2015-11-26
    • 1970-01-01
    • 2011-01-05
    • 2013-04-15
    • 2017-08-08
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    相关资源
    最近更新 更多