Changeset 60977
- Timestamp:
- 10/19/2025 05:40:13 PM (3 months ago)
- Location:
- trunk
- Files:
-
- 3 edited
-
src/wp-admin/user-edit.php (modified) (1 diff)
-
src/wp-includes/capabilities.php (modified) (2 diffs)
-
tests/phpunit/tests/user/multisite.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/user-edit.php
r60679 r60977 472 472 <?php endif; // End if ! IS_PROFILE_PAGE. ?> 473 473 474 <?php if ( is_multisite() && is_network_admin() && ! IS_PROFILE_PAGE && current_user_can( 'manage_network_options' ) &&! isset( $super_admins ) ) : ?>474 <?php if ( is_multisite() && is_network_admin() && ! IS_PROFILE_PAGE && ! isset( $super_admins ) ) : ?> 475 475 <tr class="user-super-admin-wrap"> 476 476 <th><?php _e( 'Super Admin' ); ?></th> 477 477 <td> 478 <?php if ( 0 !== strcasecmp( $profile_user->user_email, get_site_option( 'admin_email' ) ) || ! is_super_admin( $profile_user->ID ) ) : ?> 479 <p><label><input type="checkbox" id="super_admin" name="super_admin"<?php checked( is_super_admin( $profile_user->ID ) ); ?> /> <?php _e( 'Grant this user super admin privileges for the Network.' ); ?></label></p> 480 <?php else : ?> 481 <p><?php _e( 'Super admin privileges cannot be removed because this user has the network admin email.' ); ?></p> 482 <?php endif; ?> 478 <p><label><input type="checkbox" id="super_admin" name="super_admin"<?php checked( is_super_admin( $profile_user->ID ) ); ?> /> <?php _e( 'Grant this user super admin privileges for the Network.' ); ?></label></p> 483 479 </td> 484 480 </tr> -
trunk/src/wp-includes/capabilities.php
r60491 r60977 1253 1253 * 1254 1254 * @since 3.0.0 1255 * @since 6.9.0 Super admin privileges can be revoked regardless of email address. 1255 1256 * 1256 1257 * @global array $super_admins … … 1279 1280 1280 1281 $user = get_userdata( $user_id ); 1281 if ( $user && 0 !== strcasecmp( $user->user_email, get_site_option( 'admin_email' ) )) {1282 if ( $user ) { 1282 1283 $key = array_search( $user->user_login, $super_admins, true ); 1283 1284 if ( false !== $key ) { -
trunk/tests/phpunit/tests/user/multisite.php
r60915 r60977 449 449 $wp_roles->remove_role( $role ); 450 450 } 451 452 /** 453 * @ticket 39170 454 */ 455 public function test_revoke_super_admin_with_network_email() { 456 if ( isset( $GLOBALS['super_admins'] ) ) { 457 $old_global = $GLOBALS['super_admins']; 458 unset( $GLOBALS['super_admins'] ); 459 } 460 461 $old_network_email = get_site_option( 'admin_email' ); 462 $email_address = 'superadmin333@example.org'; 463 464 $user_id = self::factory()->user->create( 465 array( 466 'user_email' => $email_address, 467 ) 468 ); 469 470 grant_super_admin( $user_id ); 471 update_site_option( 'admin_email', $email_address ); 472 473 $result = revoke_super_admin( $user_id ); 474 475 update_site_option( 'admin_email', $old_network_email ); 476 477 if ( isset( $old_global ) ) { 478 $GLOBALS['super_admins'] = $old_global; 479 } 480 481 $this->assertTrue( $result ); 482 } 451 483 }
Note: See TracChangeset
for help on using the changeset viewer.