Ticket #21788: 21788.patch
File 21788.patch, 3.7 KB (added by , 8 years ago) |
---|
-
wp-admin/includes/ms.php
691 691 add_action( 'network_admin_notices', 'ms_deprecated_blogs_file' ); 692 692 693 693 /** 694 * Grants super admin privileges.695 *696 * @since 3.0.0697 * @param int $user_id698 */699 function grant_super_admin( $user_id ) {700 global $super_admins;701 702 // If global super_admins override is defined, there is nothing to do here.703 if ( isset($super_admins) )704 return false;705 706 do_action( 'grant_super_admin', $user_id );707 708 // Directly fetch site_admins instead of using get_super_admins()709 $super_admins = get_site_option( 'site_admins', array( 'admin' ) );710 711 $user = get_userdata( $user_id );712 if ( $user && ! in_array( $user->user_login, $super_admins ) ) {713 $super_admins[] = $user->user_login;714 update_site_option( 'site_admins' , $super_admins );715 do_action( 'granted_super_admin', $user_id );716 return true;717 }718 return false;719 }720 721 /**722 * Revokes super admin privileges.723 *724 * @since 3.0.0725 * @param int $user_id726 */727 function revoke_super_admin( $user_id ) {728 global $super_admins;729 730 // If global super_admins override is defined, there is nothing to do here.731 if ( isset($super_admins) )732 return false;733 734 do_action( 'revoke_super_admin', $user_id );735 736 // Directly fetch site_admins instead of using get_super_admins()737 $super_admins = get_site_option( 'site_admins', array( 'admin' ) );738 739 $user = get_userdata( $user_id );740 if ( $user && $user->user_email != get_site_option( 'admin_email' ) ) {741 if ( false !== ( $key = array_search( $user->user_login, $super_admins ) ) ) {742 unset( $super_admins[$key] );743 update_site_option( 'site_admins', $super_admins );744 do_action( 'revoked_super_admin', $user_id );745 return true;746 }747 }748 return false;749 }750 751 /**752 694 * Whether or not we can edit this network from this page 753 695 * 754 696 * By default editing of network is restricted to the Network Admin for that site_id this allows for this to be overridden -
wp-includes/capabilities.php
1444 1444 1445 1445 return false; 1446 1446 } 1447 1448 /** 1449 * Grants super admin privileges. 1450 * 1451 * @since 3.0.0 1452 * @param int $user_id 1453 */ 1454 function grant_super_admin( $user_id ) { 1455 global $super_admins; 1456 1457 // If global super_admins override is defined, there is nothing to do here. 1458 if ( isset($super_admins) ) 1459 return false; 1460 1461 do_action( 'grant_super_admin', $user_id ); 1462 1463 // Directly fetch site_admins instead of using get_super_admins() 1464 $super_admins = get_site_option( 'site_admins', array( 'admin' ) ); 1465 1466 $user = get_userdata( $user_id ); 1467 if ( $user && ! in_array( $user->user_login, $super_admins ) ) { 1468 $super_admins[] = $user->user_login; 1469 update_site_option( 'site_admins' , $super_admins ); 1470 do_action( 'granted_super_admin', $user_id ); 1471 return true; 1472 } 1473 return false; 1474 } 1475 1476 /** 1477 * Revokes super admin privileges. 1478 * 1479 * @since 3.0.0 1480 * @param int $user_id 1481 */ 1482 function revoke_super_admin( $user_id ) { 1483 global $super_admins; 1484 1485 // If global super_admins override is defined, there is nothing to do here. 1486 if ( isset($super_admins) ) 1487 return false; 1488 1489 do_action( 'revoke_super_admin', $user_id ); 1490 1491 // Directly fetch site_admins instead of using get_super_admins() 1492 $super_admins = get_site_option( 'site_admins', array( 'admin' ) ); 1493 1494 $user = get_userdata( $user_id ); 1495 if ( $user && $user->user_email != get_site_option( 'admin_email' ) ) { 1496 if ( false !== ( $key = array_search( $user->user_login, $super_admins ) ) ) { 1497 unset( $super_admins[$key] ); 1498 update_site_option( 'site_admins', $super_admins ); 1499 do_action( 'revoked_super_admin', $user_id ); 1500 return true; 1501 } 1502 } 1503 return false; 1504 }