コード例 #1
0
 /**
  * Get the group member list by a user and his group role
  * @param int $userId The user ID
  * @param int $relationType Optional. The relation type. GROUP_USER_PERMISSION_ADMIN by default
  * @param boolean $includeSubgroupsUsers Optional. Whether include the users from subgroups
  * @return array
  */
 public static function getGroupUsersByUser($userId, $relationType = GROUP_USER_PERMISSION_ADMIN, $includeSubgroupsUsers = true)
 {
     $userId = intval($userId);
     $groups = GroupPortalManager::get_groups_by_user($userId, $relationType);
     $groupsId = array_keys($groups);
     $subgroupsId = [];
     $userIdList = [];
     if ($includeSubgroupsUsers) {
         foreach ($groupsId as $groupId) {
             $subgroupsId = array_merge($subgroupsId, GroupPortalManager::getGroupsByDepthLevel($groupId));
         }
         $groupsId = array_merge($groupsId, $subgroupsId);
     }
     $groupsId = array_unique($groupsId);
     if (empty($groupsId)) {
         return [];
     }
     foreach ($groupsId as $groupId) {
         $groupUsers = GroupPortalManager::get_users_by_group($groupId);
         if (empty($groupUsers)) {
             continue;
         }
         foreach ($groupUsers as $member) {
             if ($member['user_id'] == $userId) {
                 continue;
             }
             $userIdList[] = intval($member['user_id']);
         }
     }
     return array_unique($userIdList);
 }