/**
 * Allows a user to completely remove their account from the system
 *
 * @package BuddyPress Core
 * @global object $bp Global BuddyPress settings object
 * @uses is_super_admin() Checks to see if the user is a site administrator.
 * @uses nxtmu_delete_user() Deletes a user from the system on multisite installs.
 * @uses nxt_delete_user() Deletes a user from the system on singlesite installs.
 */
function bp_core_delete_account($user_id = 0)
{
    global $bp, $nxt_version;
    if (!$user_id) {
        $user_id = $bp->loggedin_user->id;
    }
    // Make sure account deletion is not disabled
    if (!empty($bp->site_options['bp-disable-account-deletion']) && !$bp->loggedin_user->is_super_admin) {
        return false;
    }
    // Site admins cannot be deleted
    if (is_super_admin(bp_core_get_username($user_id))) {
        return false;
    }
    // Specifically handle multi-site environment
    if (is_multisite()) {
        if ($nxt_version >= '3.0') {
            require ABSPATH . '/nxt-admin/includes/ms.php';
        } else {
            require ABSPATH . '/nxt-admin/includes/mu.php';
        }
        require ABSPATH . '/nxt-admin/includes/user.php';
        return nxtmu_delete_user($user_id);
        // Single site user deletion
    } else {
        require ABSPATH . '/nxt-admin/includes/user.php';
        return nxt_delete_user($user_id);
    }
}
Example #2
0
         if (!current_user_can('delete_user', $id)) {
             nxt_die(__('You can’t delete that user.'));
         }
         if ($id == $current_user->ID) {
             $update = 'err_admin_del';
             continue;
         }
         switch ($_REQUEST['delete_option']) {
             case 'delete':
                 if (current_user_can('delete_user', $id)) {
                     nxt_delete_user($id);
                 }
                 break;
             case 'reassign':
                 if (current_user_can('delete_user', $id)) {
                     nxt_delete_user($id, $_REQUEST['reassign_user']);
                 }
                 break;
         }
         ++$delete_count;
     }
     $redirect = add_query_arg(array('delete_count' => $delete_count, 'update' => $update), $redirect);
     nxt_redirect($redirect);
     exit;
     break;
 case 'delete':
     if (is_multisite()) {
         nxt_die(__('User deletion is not allowed from this screen.'));
     }
     check_admin_referer('bulk-users');
     if (empty($_REQUEST['users']) && empty($_REQUEST['user'])) {