Beispiel #1
0
/**
 * Remove all capabilities from user.
 *
 * @since 2.1.0
 *
 * @param int $id User ID.
 */
function nxt_revoke_user($id)
{
    $id = (int) $id;
    $user = new nxt_User($id);
    $user->remove_all_caps();
}
Beispiel #2
0
/**
 * Remove a user from a blog.
 *
 * Use the 'remove_user_from_blog' action to fire an event when
 * users are removed from a blog.
 *
 * Accepts an optional $reassign parameter, if you want to
 * reassign the user's blog posts to another user upon removal.
 *
 * @since MU 1.0
 *
 * @param int $user_id ID of the user you're removing.
 * @param int $blog_id ID of the blog you're removing the user from.
 * @param string $reassign Optional. A user to whom to reassign posts.
 * @return bool
 */
function remove_user_from_blog($user_id, $blog_id = '', $reassign = '')
{
    global $nxtdb;
    switch_to_blog($blog_id);
    $user_id = (int) $user_id;
    do_action('remove_user_from_blog', $user_id, $blog_id);
    // If being removed from the primary blog, set a new primary if the user is assigned
    // to multiple blogs.
    $primary_blog = get_user_meta($user_id, 'primary_blog', true);
    if ($primary_blog == $blog_id) {
        $new_id = '';
        $new_domain = '';
        $blogs = get_blogs_of_user($user_id);
        foreach ((array) $blogs as $blog) {
            if ($blog->userblog_id == $blog_id) {
                continue;
            }
            $new_id = $blog->userblog_id;
            $new_domain = $blog->domain;
            break;
        }
        update_user_meta($user_id, 'primary_blog', $new_id);
        update_user_meta($user_id, 'source_domain', $new_domain);
    }
    // nxt_revoke_user($user_id);
    $user = new nxt_User($user_id);
    if (empty($user->ID)) {
        restore_current_blog();
        return new nxt_Error('user_does_not_exist', __('That user does not exist.'));
    }
    $user->remove_all_caps();
    $blogs = get_blogs_of_user($user_id);
    if (count($blogs) == 0) {
        update_user_meta($user_id, 'primary_blog', '');
        update_user_meta($user_id, 'source_domain', '');
    }
    if ($reassign != '') {
        $reassign = (int) $reassign;
        $nxtdb->query($nxtdb->prepare("UPDATE {$nxtdb->posts} SET post_author = %d WHERE post_author = %d", $reassign, $user_id));
        $nxtdb->query($nxtdb->prepare("UPDATE {$nxtdb->links} SET link_owner = %d WHERE link_owner = %d", $reassign, $user_id));
    }
    restore_current_blog();
    return true;
}