Make WordPress Core

Ticket #31518: 31518.diff

File 31518.diff, 1013 bytes (added by swissspidy, 9 years ago)
  • src/wp-includes/class-wp-user.php

    diff --git src/wp-includes/class-wp-user.php src/wp-includes/class-wp-user.php
    index d0bcb65..04868b2 100644
    class WP_User { 
    639639
    640640                $args = array_slice( func_get_args(), 1 );
    641641                $args = array_merge( array( $cap, $this->ID ), $args );
    642                 $caps = call_user_func_array( 'map_meta_cap', $args );
     642                $caps = (array) call_user_func_array( 'map_meta_cap', $args );
    643643
    644644                // Multisite super admin has all caps by definition, Unless specifically denied.
    645645                if ( is_multisite() && is_super_admin( $this->ID ) ) {
    class WP_User { 
    662662                // Must have ALL requested caps
    663663                $capabilities = apply_filters( 'user_has_cap', $this->allcaps, $caps, $args, $this );
    664664                $capabilities['exist'] = true; // Everyone is allowed to exist
    665                 foreach ( (array) $caps as $cap ) {
     665
     666                if ( empty( $caps ) ) {
     667                        return false;
     668                }
     669
     670                foreach ( $caps as $cap ) {
    666671                        if ( empty( $capabilities[ $cap ] ) )
    667672                                return false;
    668673                }