Skip to:
Content

BuddyPress.org

Ticket #1586: delete_user.patch

File delete_user.patch, 1.9 KB (added by jivany, 16 years ago)

Allow admin user to delete other users

  • bp-core.php

     
    16091609 * @global $bp The global BuddyPress settings variable created in bp_core_setup_globals()
    16101610 * @uses check_admin_referer() Checks for a valid security nonce.
    16111611 * @uses is_site_admin() Checks to see if the user is a site administrator.
    1612  * @uses wpmu_delete_user() Deletes a user from the system.
     1612 * @uses wpmu_delete_user() Deletes a user from a MU system.
     1613 * @uses wp_delete_user() Deletes a user from the system
    16131614 */
    16141615function bp_core_delete_account( $user_id = false ) {
    16151616        global $bp;
     
    16221623                return false;
    16231624
    16241625        /* Site admins should not be allowed to be deleted */
    1625         if ( is_site_admin( bp_core_get_username( $user_id ) ) )
     1626        if ( is_site_admin( $user_id ) )
    16261627                return false;
    16271628
    1628         require_once( ABSPATH . '/wp-admin/includes/mu.php' );
    16291629        require_once( ABSPATH . '/wp-admin/includes/user.php' );
    1630 
    1631         return wpmu_delete_user( $user_id );
     1630       
     1631        if( bp_core_is_multisite() ) {
     1632                require_once( ABSPATH . '/wp-admin/includes/mu.php' );
     1633                return wpmu_delete_user( $user_id );
     1634        } else {
     1635                return wp_delete_user( $user_id );
     1636        }
    16321637}
    16331638
    16341639
  • bp-core/bp-core-wpabstraction.php

     
    9292}
    9393
    9494if ( !function_exists( 'is_site_admin' ) ) {
    95         function is_site_admin() {
    96                 if ( current_user_can( 'manage_options' ) )
    97                         return true;
    98 
     95        function is_site_admin($user_id = false) {
     96                if ( function_exists ( 'is_super_admin' ) )
     97                        return is_super_admin($user_id);
     98                       
     99                if ( !$user_id )
     100                        return current_user_can( 'manage_options' );
     101                       
     102                $user = new WP_User($user_id);
     103                if ( $user->has_cap('manage_options') )
     104              return true;     
     105                         
    99106                return false;
    100107        }
    101108}