WordPress.org

Make WordPress Core

Changeset 21199


Ignore:
Timestamp:
06/30/12 12:54:05 (22 months ago)
Author:
nacin
Message:

Allow the 'WordPress Updates' page to be accessible even if you cannot update core, as long as you can update plugins or themes. fixes #21124.

Location:
trunk/wp-admin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/menu.php

    r21198 r21199  
    3535 
    3636if ( ! is_multisite() ) { 
    37     $submenu[ 'index.php' ][10] = array( sprintf( __('Updates %s'), "<span class='update-plugins count-{$update_data['counts']['total']}' title='{$update_data['title']}'><span class='update-count'>" . number_format_i18n($update_data['counts']['total']) . "</span></span>" ), 'update_core',  'update-core.php'); 
     37    if ( current_user_can( 'update_core' ) ) 
     38        $cap = 'update_core'; 
     39    elseif ( current_user_can( 'update_plugins' ) ) 
     40        $cap = 'update_plugins'; 
     41    else 
     42        $cap = 'update_themes'; 
     43    $submenu[ 'index.php' ][10] = array( sprintf( __('Updates %s'), "<span class='update-plugins count-{$update_data['counts']['total']}' title='{$update_data['title']}'><span class='update-count'>" . number_format_i18n($update_data['counts']['total']) . "</span></span>" ), $cap, 'update-core.php'); 
     44    unset( $cap ); 
    3845} 
    3946 
  • trunk/wp-admin/update-core.php

    r20894 r21199  
    1919} 
    2020 
    21 if ( ! current_user_can( 'update_core' ) ) 
     21if ( ! current_user_can( 'update_core' ) && ! current_user_can( 'update_themes' ) && ! current_user_can( 'update_plugins' ) ) 
    2222    wp_die( __( 'You do not have sufficient permissions to update this site.' ) ); 
    2323 
     
    135135 
    136136    $updates = get_core_updates(); 
    137 ?> 
    138     <div class="wrap"> 
    139     <?php screen_icon('tools'); ?> 
    140     <h2><?php _e('WordPress Updates'); ?></h2> 
    141 <?php 
     137 
    142138    if ( $upgrade_error ) { 
    143139        echo '<div class="error"><p>'; 
     
    184180    } 
    185181    dismissed_updates(); 
    186  
    187     if ( current_user_can( 'update_plugins' ) ) 
    188         list_plugin_updates(); 
    189     if ( current_user_can( 'update_themes' ) ) 
    190         list_theme_updates(); 
    191     do_action('core_upgrade_preamble'); 
    192     echo '</div>'; 
    193182} 
    194183 
     
    455444    wp_version_check(); 
    456445    require_once(ABSPATH . 'wp-admin/admin-header.php'); 
    457     core_upgrade_preamble(); 
     446    ?> 
     447    <div class="wrap"> 
     448    <?php screen_icon('tools'); ?> 
     449    <h2><?php _e('WordPress Updates'); ?></h2> 
     450    <?php 
     451    if ( current_user_can( 'update_core' ) ) 
     452        core_upgrade_preamble(); 
     453    if ( current_user_can( 'update_plugins' ) ) 
     454        list_plugin_updates(); 
     455    if ( current_user_can( 'update_themes' ) ) 
     456        list_theme_updates(); 
     457    do_action('core_upgrade_preamble'); 
     458    echo '</div>'; 
    458459    include(ABSPATH . 'wp-admin/admin-footer.php'); 
    459460 
    460461} elseif ( 'do-core-upgrade' == $action || 'do-core-reinstall' == $action ) { 
     462 
     463    if ( ! current_user_can( 'update_core' ) ) 
     464        wp_die( __( 'You do not have sufficient permissions to update this site.' ) ); 
     465 
    461466    check_admin_referer('upgrade-core'); 
    462467 
Note: See TracChangeset for help on using the changeset viewer.