Make WordPress Core


Ignore:
Timestamp:
03/11/2008 04:37:44 PM (18 years ago)
Author:
ryan
Message:

Auto update fixes from DD32. see #5586

File:
1 edited

Legend:

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

    r7206 r7238  
    66                wp_die('<p>'.__('You do not have sufficient permissions to update plugins for this blog.').'</p>');
    77
    8 function request_filesystem_credentials($form_post, $type = '') {
     8function request_filesystem_credentials($form_post, $type = '', $error = false) {
    99        if ( empty($type) )
    1010                $type = get_filesystem_method();
     
    1313                return array();
    1414
    15         if ( !empty($_POST['password']) && !empty($_POST['username']) && !empty($_POST['hostname']) ) {
     15        if ( ! $error && !empty($_POST['password']) && !empty($_POST['username']) && !empty($_POST['hostname']) ) {
    1616                $credentials = array('hostname' => $_POST['hostname'], 'username' => $_POST['username'],
    1717                        'password' => $_POST['password'], 'ssl' => $_POST['ssl']);
     
    2727        if ( $credentials = get_option('ftp_credentials') )
    2828                extract($credentials, EXTR_OVERWRITE);
     29        if( $error ){
     30                echo '<div id="message" class="error"><p>' . __('<strong>Error:</strong> There was an error connecting to the server, Please verify the settings are correct.') . '</p></div>';
     31        }
    2932?>
    3033<form action="<?php echo $form_post ?>" method="post">
     
    4346<tr valign="top">
    4447<th scope="row"><?php _e('Password:') ?></th>
    45 <td><input name="password" type="text" id="password" value="<?php echo attribute_escape($password) ?>" size="40" /></td>
     48<td><input name="password" type="password" id="password" value="<?php echo attribute_escape($password) ?>" size="40" /></td>
    4649</tr>
    4750<tr valign="top">
     
    8184        global $wp_filesystem;
    8285
    83         $credentials = request_filesystem_credentials("update.php?action=upgrade-plugin&plugin=$plugin");
    84         if ( false === $credentials )
     86        $url = wp_nonce_url("update.php?action=upgrade-plugin&plugin=$plugin", "upgrade-plugin_$plugin");
     87        if ( false === ($credentials = request_filesystem_credentials($url)) )
    8588                return;
     89               
     90        if( ! WP_Filesystem($credentials) ){
     91                request_filesystem_credentials($url, '', true); //Failed to connect, Error and request again
     92                return;
     93        }
     94               
    8695        echo '<div class="wrap">';
    8796        echo '<h2>' . __('Upgrade Plugin') . '</h2>';
    88         WP_Filesystem($credentials);
    89         // TODO: look for auth and connect error codes and direct back to credentials form.
    9097        if ( $wp_filesystem->errors->get_error_code() ) {
    9198                foreach ( $wp_filesystem->errors->get_error_messages() as $message )
     
    109116
    110117        if ( 'upgrade-plugin' == $_GET['action'] ) {
    111                 //check-admin_referer('upgrade-plugin_' . $plugin);
     118                check_admin_referer('upgrade-plugin_' . $plugin);
    112119                $title = __('Upgrade Plugin');
    113120                $parent_file = 'plugins.php';
     
    116123                include('admin-footer.php');
    117124        }
    118 
    119125}
    120126
Note: See TracChangeset for help on using the changeset viewer.