WordPress.org

Make WordPress Core

Ticket #24169: 24169.patch

File 24169.patch, 2.6 KB (added by johnjamesjacoby, 2 years ago)
  • wp-includes/class-wp-customize-manager.php

     
    3434 
    3535                add_filter( 'wp_die_handler', array( $this, 'wp_die_handler' ) ); 
    3636 
     37                add_action( 'init',         array( $this, 'init'        ) ); 
    3738                add_action( 'setup_theme',  array( $this, 'setup_theme' ) ); 
    38                 add_action( 'wp_loaded',    array( $this, 'wp_loaded' ) ); 
     39                add_action( 'wp_loaded',    array( $this, 'wp_loaded'   ) ); 
    3940 
    4041                // Run wp_redirect_status late to make sure we override the status last. 
    4142                add_action( 'wp_redirect_status', array( $this, 'wp_redirect_status' ), 1000 ); 
     
    111112 
    112113                if ( is_admin() && ! $this->doing_ajax() ) 
    113114                    auth_redirect(); 
    114                 elseif ( $this->doing_ajax() && ! is_user_logged_in() ) 
    115                     $this->wp_die( 0 ); 
    116115 
    117116                show_admin_bar( false ); 
    118117 
    119                 if ( ! current_user_can( 'edit_theme_options' ) ) 
    120                         $this->wp_die( -1 ); 
    121  
    122118                $this->original_stylesheet = get_stylesheet(); 
     119                $this->theme               = wp_get_theme( isset( $_REQUEST['theme'] ) ? $_REQUEST['theme'] : null ); 
    123120 
    124                 $this->theme = wp_get_theme( isset( $_REQUEST['theme'] ) ? $_REQUEST['theme'] : null ); 
    125  
     121                // Once the theme is loaded, we'll validate it. 
    126122                if ( $this->is_theme_active() ) { 
    127                         // Once the theme is loaded, we'll validate it. 
    128123                        add_action( 'after_setup_theme', array( $this, 'after_setup_theme' ) ); 
    129124                } else { 
    130                         if ( ! current_user_can( 'switch_themes' ) ) 
    131                                 $this->wp_die( -1 ); 
    132125 
    133                         // If the theme isn't active, you can't preview it if it is not allowed or has errors. 
     126                        // Bail if theme has errors 
    134127                        if ( $this->theme()->errors() ) 
    135128                                $this->wp_die( -1 ); 
    136129 
    137                         if ( ! $this->theme()->is_allowed() ) 
     130                        // Bail if theme is not allowed 
     131                        if ( !$this->theme()->is_allowed() ) 
    138132                                $this->wp_die( -1 ); 
    139133                } 
    140134 
     135 
    141136                $this->start_previewing_theme(); 
    142137        } 
    143138 
     
    154149        } 
    155150 
    156151        /** 
     152         * Callback to perform capability checks on the current user, once 
     153         * wp_get_current_user() has been called. 
     154         * 
     155         * @since 3.6 
     156         */ 
     157        function init() { 
     158 
     159                // Bail if user is not logged in 
     160                if ( $this->doing_ajax() && ! is_user_logged_in() ) { 
     161                    $this->wp_die( 0 ); 
     162                } 
     163 
     164                // Bail if user cannot edit theme options 
     165                if ( ! current_user_can( 'edit_theme_options' ) ) { 
     166                        $this->wp_die( -1 ); 
     167                } 
     168 
     169                // Previewing a new theme 
     170                if ( ! $this->is_theme_active() ) { 
     171 
     172                        // Bail if user cannot switch themes 
     173                        if ( ! current_user_can( 'switch_themes' ) ) { 
     174                                $this->wp_die( -1 ); 
     175                        } 
     176                } 
     177        } 
     178 
     179        /** 
    157180         * Start previewing the selected theme. 
    158181         * 
    159182         * Adds filters to change the current theme.