WordPress.org

Make WordPress Core

Ticket #15819: capabilities.php.diff

File capabilities.php.diff, 1.0 KB (added by layotte, 16 months ago)

Updated patch for user_can_for_blog to deal with non-multisite properly, etc.

  • capabilities.php

     
    13651365} 
    13661366 
    13671367/** 
     1368 * Whether a particular user has capability or role. 
     1369 * 
     1370 * @since 3.5.1 
     1371 * 
     1372 * @param int|object $user User ID or object. 
     1373 * @param int $blog_id Blog ID 
     1374 * @param string $capability Capability or role name. 
     1375 * @return bool 
     1376 */ 
     1377function user_can_for_blog( $user, $blog_id, $capability ) { 
     1378        if ( is_multisite() ) 
     1379                switch_to_blog( $blog_id ); 
     1380                 
     1381        if ( ! is_object( $user ) ) 
     1382                $user = get_userdata( $user ); 
     1383 
     1384        if ( ! $user || ! $user->exists() ) 
     1385                return false; 
     1386 
     1387        $args = array_slice( func_get_args(), 3 ); 
     1388        $args = array_merge( array( $capability ), $args ); 
     1389 
     1390        $can = call_user_func_array( array( $user, 'has_cap' ), $args ); 
     1391 
     1392        if ( is_multisite() ) 
     1393                restore_current_blog(); 
     1394                 
     1395        return $can;     
     1396} 
     1397 
     1398/** 
    13681399 * Retrieve role object. 
    13691400 * 
    13701401 * @see WP_Roles::get_role() Uses method to retrieve role object.