WordPress.org

Make WordPress Core

Ticket #21788: 21788.patch

File 21788.patch, 3.7 KB (added by johnjamesjacoby, 8 years ago)
  • wp-admin/includes/ms.php

     
    691691add_action( 'network_admin_notices', 'ms_deprecated_blogs_file' );
    692692
    693693/**
    694  * Grants super admin privileges.
    695  *
    696  * @since 3.0.0
    697  * @param int $user_id
    698  */
    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.0
    725  * @param int $user_id
    726  */
    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 /**
    752694 * Whether or not we can edit this network from this page
    753695 *
    754696 * 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

     
    14441444
    14451445        return false;
    14461446}
     1447
     1448/**
     1449 * Grants super admin privileges.
     1450 *
     1451 * @since 3.0.0
     1452 * @param int $user_id
     1453 */
     1454function 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 */
     1482function 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}