/**
 * Remove a member from a group.
 *
 * @param int $user_id  ID of the user.
 * @param int $group_id ID of the group.
 *
 * @return bool True on success, false on failure.
 */
function groups_remove_member($user_id, $group_id)
{
    if (!bp_is_item_admin()) {
        // bp_is_item_admin may not be set if this function is called outside of group context.
        // Site admins and group admins can remove a member from a group.
        // A member may also request to remove herself from a group.
        if (!current_user_can('bp_moderate') && !groups_is_user_admin(bp_loggedin_user_id(), $group_id) && $user_id != bp_loggedin_user_id()) {
            return false;
        }
    }
    $member = new BP_Groups_Member($user_id, $group_id);
    /**
     * Fires before the removal of a member from a group.
     *
     * @since 1.2.6
     *
     * @param int $group_id ID of the group being removed from.
     * @param int $user_id  ID of the user being removed.
     */
    do_action('groups_remove_member', $group_id, $user_id);
    return $member->remove();
}
function groups_remove_member($user_id, $group_id)
{
    if (!bp_is_item_admin()) {
        return false;
    }
    $member = new BP_Groups_Member($user_id, $group_id);
    do_action('groups_remove_member', $group_id, $user_id);
    return $member->remove();
}
/**
 * Remove a member from a group.
 *
 * @since 1.2.6
 *
 * @param int $user_id  ID of the user.
 * @param int $group_id ID of the group.
 * @return bool True on success, false on failure.
 */
function groups_remove_member($user_id, $group_id)
{
    if (!bp_is_item_admin()) {
        return false;
    }
    $member = new BP_Groups_Member($user_id, $group_id);
    /**
     * Fires before the removal of a member from a group.
     *
     * @since 1.2.6
     *
     * @param int $group_id ID of the group being removed from.
     * @param int $user_id  ID of the user being removed.
     */
    do_action('groups_remove_member', $group_id, $user_id);
    return $member->remove();
}
function groups_remove_member($user_id, $group_id)
{
    global $bp;
    if (!$bp->is_item_admin) {
        return false;
    }
    $member = new BP_Groups_Member($user_id, $group_id);
    do_action('groups_remove_member', $group_id, $user_id);
    return $member->remove();
}
 /**
  * @group cache
  */
 public function test_cache_should_be_invalidated_on_group_remove()
 {
     // Populate cache.
     $g1 = bp_get_user_groups(self::$user);
     $m = new BP_Groups_Member(self::$user, self::$groups[1]);
     $m->remove();
     $expected = array(self::$groups[0]);
     $found = bp_get_user_groups(self::$user);
     $this->assertEqualSets($expected, array_keys($found));
 }