First cut and better admin SSL support. see #7001

git-svn-id: http://svn.automattic.com/wordpress/trunk@7998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2008-05-27 17:46:01 +00:00
parent 67c2a2aced
commit 9771ec5110
20 changed files with 138 additions and 52 deletions

View File

@ -85,7 +85,7 @@ if ( ($is_gecko || $is_winIE) && strpos(strtolower($_SERVER['HTTP_USER_AGENT']),
<a href="http://gears.google.com/" target="_blank" style="font-weight:normal;"><?php _e('More information...'); ?></a></p> <a href="http://gears.google.com/" target="_blank" style="font-weight:normal;"><?php _e('More information...'); ?></a></p>
<p><?php _e('After installing and enabling it, most of the WordPress images, scripts and CSS files will be stored on this computer. This will speed up page loading.'); ?></p> <p><?php _e('After installing and enabling it, most of the WordPress images, scripts and CSS files will be stored on this computer. This will speed up page loading.'); ?></p>
<p><strong><?php _e('Please make sure you are not using a public or shared computer.'); ?></strong></p> <p><strong><?php _e('Please make sure you are not using a public or shared computer.'); ?></strong></p>
<div class="submit"><button onclick="window.location = 'http://gears.google.com/?action=install&return=<?php echo get_option('siteurl') . '/wp-admin/'; ?>';" class="button"><?php _e('Install Now'); ?></button> <div class="submit"><button onclick="window.location = 'http://gears.google.com/?action=install&return=<?php echo admin_url() ?>';" class="button"><?php _e('Install Now'); ?></button>
<button class="button" style="margin-left:10px;" onclick="document.getElementById('gears-info-box').style.display='none';">Cancel</button></div> <button class="button" style="margin-left:10px;" onclick="document.getElementById('gears-info-box').style.display='none';">Cancel</button></div>
</div> </div>
@ -109,7 +109,7 @@ if ( ($is_gecko || $is_winIE) && strpos(strtolower($_SERVER['HTTP_USER_AGENT']),
<?php } ?> <?php } ?>
<div id="user_info"><p><?php printf(__('Howdy, <a href="%1$s">%2$s</a>!'), 'profile.php', $user_identity) ?> | <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Log Out') ?>"><?php _e('Log Out'); ?></a> | <?php _e('<a href="http://codex.wordpress.org/">Help</a>') ?> | <?php _e('<a href="http://wordpress.org/support/">Forums</a>') ?> | <?php if ( $gears_compat ) { ?><span id="gears-menu"><a href="#" onclick="wpGears.message(1);return false;"><?php _e('Speed up!') ?></a></span><?php } ?></p></div> <div id="user_info"><p><?php printf(__('Howdy, <a href="%1$s">%2$s</a>!'), 'profile.php', $user_identity) ?> | <a href="<?php echo site_url('wp-login.php?action=logout') ?>" title="<?php _e('Log Out') ?>"><?php _e('Log Out'); ?></a> | <?php _e('<a href="http://codex.wordpress.org/">Help</a>') ?> | <?php _e('<a href="http://wordpress.org/support/">Forums</a>') ?> | <?php if ( $gears_compat ) { ?><span id="gears-menu"><a href="#" onclick="wpGears.message(1);return false;"><?php _e('Speed up!') ?></a></span><?php } ?></p></div>
<?php <?php
require(ABSPATH . 'wp-admin/menu-header.php'); require(ABSPATH . 'wp-admin/menu-header.php');

View File

@ -26,8 +26,8 @@ $time_format = get_option('time_format');
wp_reset_vars(array('profile', 'redirect', 'redirect_url', 'a', 'popuptitle', 'popupurl', 'text', 'trackback', 'pingback')); wp_reset_vars(array('profile', 'redirect', 'redirect_url', 'a', 'popuptitle', 'popupurl', 'text', 'trackback', 'pingback'));
wp_admin_css_color('classic', __('Classic'), get_option( 'siteurl' ) . "/wp-admin/css/colors-classic.css", array('#07273E', '#14568A', '#D54E21', '#2683AE')); wp_admin_css_color('classic', __('Classic'), admin_url("css/colors-classic.css"), array('#07273E', '#14568A', '#D54E21', '#2683AE'));
wp_admin_css_color('fresh', __('Fresh'), get_option( 'siteurl' ) . "/wp-admin/css/colors-fresh.css", array('#464646', '#CEE1EF', '#D54E21', '#2683AE')); wp_admin_css_color('fresh', __('Fresh'), admin_url("css/colors-fresh.css"), array('#464646', '#CEE1EF', '#D54E21', '#2683AE'));
wp_enqueue_script( 'common' ); wp_enqueue_script( 'common' );
wp_enqueue_script( 'jquery-color' ); wp_enqueue_script( 'jquery-color' );

View File

@ -78,7 +78,7 @@ if ( 'spam' == $_GET['dt'] ) {
<table width="100%"> <table width="100%">
<tr> <tr>
<td><input type='button' class="button" value='<?php _e('No'); ?>' onclick="self.location='<?php echo get_option('siteurl'); ?>/wp-admin/edit-comments.php';" /></td> <td><input type='button' class="button" value='<?php _e('No'); ?>' onclick="self.location='<?php echo admin_url('edit-comments.php'); ?>" /></td>
<td class="textright"><input type='submit' class="button" value='<?php echo $button; ?>' /></td> <td class="textright"><input type='submit' class="button" value='<?php echo $button; ?>' /></td>
</tr> </tr>
</table> </table>
@ -146,7 +146,7 @@ case 'deletecomment' :
else if ( '' != wp_get_original_referer() && false == $noredir ) else if ( '' != wp_get_original_referer() && false == $noredir )
wp_redirect( wp_get_original_referer() ); wp_redirect( wp_get_original_referer() );
else else
wp_redirect( get_option('siteurl') . '/wp-admin/edit-comments.php' ); wp_redirect( admin_url('edit-comments.php') );
die; die;
break; break;
@ -171,7 +171,7 @@ case 'unapprovecomment' :
if ( '' != wp_get_referer() && false == $noredir ) if ( '' != wp_get_referer() && false == $noredir )
wp_redirect( wp_get_referer() ); wp_redirect( wp_get_referer() );
else else
wp_redirect( get_option('siteurl') . '/wp-admin/edit.php?p=' . absint( $comment->comment_post_ID ) . '#comments' ); wp_redirect( admin_url('edit.php?p=' . absint( $comment->comment_post_ID ) . '#comments') );
exit(); exit();
break; break;
@ -200,7 +200,7 @@ case 'approvecomment' :
if ( '' != wp_get_referer() && false == $noredir ) if ( '' != wp_get_referer() && false == $noredir )
wp_redirect( wp_get_referer() ); wp_redirect( wp_get_referer() );
else else
wp_redirect( get_option('siteurl') . '/wp-admin/edit.php?p=' . absint( $comment->comment_post_ID ) . '#comments' ); wp_redirect( admin_url('edit.php?p=' . absint( $comment->comment_post_ID ) . '#comments') );
exit(); exit();
break; break;

View File

@ -189,7 +189,7 @@ Event.observe( window, 'load', hide_text );
<div id="desc"><?php bloginfo('description');?></div> <div id="desc"><?php bloginfo('description');?></div>
</div> </div>
<?php if ( !defined( 'NO_HEADER_TEXT' ) ) { ?> <?php if ( !defined( 'NO_HEADER_TEXT' ) ) { ?>
<form method="post" action="<?php echo get_option('siteurl') ?>/wp-admin/themes.php?page=custom-header&amp;updated=true"> <form method="post" action="<?php echo admin_url('themes.php?page=custom-header&amp;updated=true') ?>">
<input type="button" value="<?php _e('Hide Text'); ?>" onclick="hide_text()" id="hidetext" /> <input type="button" value="<?php _e('Hide Text'); ?>" onclick="hide_text()" id="hidetext" />
<input type="button" value="<?php _e('Select a Text Color'); ?>" onclick="colorSelect($('textcolor'), 'pickcolor')" id="pickcolor" /><input type="button" value="<?php _e('Use Original Color'); ?>" onclick="colorDefault()" id="defaultcolor" /> <input type="button" value="<?php _e('Select a Text Color'); ?>" onclick="colorSelect($('textcolor'), 'pickcolor')" id="pickcolor" /><input type="button" value="<?php _e('Use Original Color'); ?>" onclick="colorDefault()" id="defaultcolor" />
<?php wp_nonce_field('custom-header') ?> <?php wp_nonce_field('custom-header') ?>

View File

@ -20,8 +20,8 @@ if ( isset($_GET['deleteit']) && isset($_GET['delete']) ) {
} }
$sendback = wp_get_referer(); $sendback = wp_get_referer();
if (strpos($sendback, 'page.php') !== false) $sendback = get_option('siteurl') .'/wp-admin/page-new.php'; if (strpos($sendback, 'page.php') !== false) $sendback = admin_url('page-new.php');
elseif (strpos($sendback, 'attachments.php') !== false) $sendback = get_option('siteurl') .'/wp-admin/attachments.php'; elseif (strpos($sendback, 'attachments.php') !== false) $sendback = admin_url('attachments.php');
$sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback); $sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback);
wp_redirect($sendback); wp_redirect($sendback);

View File

@ -20,8 +20,8 @@ if ( isset($_GET['deleteit']) && isset($_GET['delete']) ) {
} }
$sendback = wp_get_referer(); $sendback = wp_get_referer();
if (strpos($sendback, 'post.php') !== false) $sendback = get_option('siteurl') .'/wp-admin/post-new.php'; if (strpos($sendback, 'post.php') !== false) $sendback = admin_url('post-new.php');
elseif (strpos($sendback, 'attachments.php') !== false) $sendback = get_option('siteurl') .'/wp-admin/attachments.php'; elseif (strpos($sendback, 'attachments.php') !== false) $sendback = admin_url('attachments.php');
$sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback); $sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback);
wp_redirect($sendback); wp_redirect($sendback);

View File

@ -225,7 +225,7 @@ function wp_dashboard_dynamic_sidebar_params( $params ) {
} }
if ( $widget_feed_link ) if ( $widget_feed_link )
$links[] = '<img class="rss-icon" src="' . get_option( 'siteurl' ) . '/' . WPINC . '/images/rss.png" alt="' . __( 'rss icon' ) . '" /> <a href="' . clean_url( $widget_feed_link ) . '">' . __( 'RSS' ) . '</a>'; $links[] = '<img class="rss-icon" src="' . includes_url('images/rss.png') . '" alt="' . __( 'rss icon' ) . '" /> <a href="' . clean_url( $widget_feed_link ) . '">' . __( 'RSS' ) . '</a>';
$links = apply_filters( "wp_dashboard_widget_links_$widget_id", $links ); $links = apply_filters( "wp_dashboard_widget_links_$widget_id", $links );

View File

@ -753,7 +753,7 @@ function media_upload_header() {
function media_upload_form( $errors = null ) { function media_upload_form( $errors = null ) {
global $type, $tab; global $type, $tab;
$flash_action_url = get_option('siteurl') . "/wp-admin/async-upload.php"; $flash_action_url = admin_url('async-upload.php');
// If Mac and mod_security, no Flash. :( // If Mac and mod_security, no Flash. :(
$flash = true; $flash = true;
@ -784,7 +784,7 @@ function media_upload_form( $errors = null ) {
jQuery(function($){ jQuery(function($){
swfu = new SWFUpload({ swfu = new SWFUpload({
upload_url : "<?php echo attribute_escape( $flash_action_url ); ?>", upload_url : "<?php echo attribute_escape( $flash_action_url ); ?>",
flash_url : "<?php echo get_option('siteurl').'/wp-includes/js/swfupload/swfupload_f9.swf'; ?>", flash_url : "<?php echo includes_url('js/swfupload/swfupload_f9.swf'); ?>",
file_post_name: "async-upload", file_post_name: "async-upload",
file_types: "<?php echo apply_filters('upload_file_glob', '*.*'); ?>", file_types: "<?php echo apply_filters('upload_file_glob', '*.*'); ?>",
post_params : { post_params : {
@ -844,7 +844,7 @@ function media_upload_type_form($type = 'file', $errors = null, $id = null) {
$post_id = intval($_REQUEST['post_id']); $post_id = intval($_REQUEST['post_id']);
$form_action_url = get_option('siteurl') . "/wp-admin/media-upload.php?type=$type&tab=type&post_id=$post_id"; $form_action_url = admin_url("media-upload.php?type=$type&tab=type&post_id=$post_id");
$form_action_url = apply_filters('media_upload_form_url', $form_action_url, $type); $form_action_url = apply_filters('media_upload_form_url', $form_action_url, $type);
$callback = "type_form_$type"; $callback = "type_form_$type";
@ -895,7 +895,7 @@ function media_upload_gallery_form($errors) {
$post_id = intval($_REQUEST['post_id']); $post_id = intval($_REQUEST['post_id']);
$form_action_url = get_option('siteurl') . "/wp-admin/media-upload.php?type={$GLOBALS['type']}&tab=gallery&post_id=$post_id"; $form_action_url = admin_url("media-upload.php?type={$GLOBALS['type']}&tab=gallery&post_id=$post_id");
?> ?>
@ -934,7 +934,7 @@ function media_upload_library_form($errors) {
$post_id = intval($_REQUEST['post_id']); $post_id = intval($_REQUEST['post_id']);
$form_action_url = get_option('siteurl') . "/wp-admin/media-upload.php?type={$GLOBALS['type']}&tab=library&post_id=$post_id"; $form_action_url = admin_url("media-upload.php?type={$GLOBALS['type']}&tab=library&post_id=$post_id");
$_GET['paged'] = intval($_GET['paged']); $_GET['paged'] = intval($_GET['paged']);
if ( $_GET['paged'] < 1 ) if ( $_GET['paged'] < 1 )

View File

@ -148,8 +148,8 @@ case 'delete':
} }
$sendback = wp_get_referer(); $sendback = wp_get_referer();
if (strpos($sendback, 'page.php') !== false) $sendback = get_option('siteurl') .'/wp-admin/page.php'; if (strpos($sendback, 'page.php') !== false) $sendback = admin_url('page.php');
elseif (strpos($sendback, 'attachments.php') !== false) $sendback = get_option('siteurl') .'/wp-admin/attachments.php'; elseif (strpos($sendback, 'attachments.php') !== false) $sendback = admin_url('attachments.php');
$sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback); $sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback);
wp_redirect($sendback); wp_redirect($sendback);
exit(); exit();

View File

@ -159,8 +159,8 @@ case 'delete':
} }
$sendback = wp_get_referer(); $sendback = wp_get_referer();
if (strpos($sendback, 'post.php') !== false) $sendback = get_option('siteurl') .'/wp-admin/post-new.php'; if (strpos($sendback, 'post.php') !== false) $sendback = admin_url('post-new.php');
elseif (strpos($sendback, 'attachments.php') !== false) $sendback = get_option('siteurl') .'/wp-admin/attachments.php'; elseif (strpos($sendback, 'attachments.php') !== false) $sendback = admin_url('attachments.php');
$sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback); $sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback);
wp_redirect($sendback); wp_redirect($sendback);
exit(); exit();

View File

@ -57,7 +57,7 @@ $themes = array_slice( $themes, $start, $per_page );
<h2><?php _e('Current Theme'); ?></h2> <h2><?php _e('Current Theme'); ?></h2>
<div id="current-theme"> <div id="current-theme">
<?php if ( $ct->screenshot ) : ?> <?php if ( $ct->screenshot ) : ?>
<img src="<?php echo get_option('siteurl') . '/' . $ct->stylesheet_dir . '/' . $ct->screenshot; ?>" alt="<?php _e('Current theme preview'); ?>" /> <img src="<?php echo site_url($ct->stylesheet_dir . '/' . $ct->screenshot); ?>" alt="<?php _e('Current theme preview'); ?>" />
<?php endif; ?> <?php endif; ?>
<h3><?php printf(_c('%1$s %2$s by %3$s|1: theme title, 2: theme version, 3: theme author'), $ct->title, $ct->version, $ct->author) ; ?></h3> <h3><?php printf(_c('%1$s %2$s by %3$s|1: theme title, 2: theme version, 3: theme author'), $ct->title, $ct->version, $ct->author) ; ?></h3>
<p class="description"><?php echo $ct->description; ?></p> <p class="description"><?php echo $ct->description; ?></p>
@ -126,7 +126,7 @@ foreach ( $cols as $col => $theme_name ) {
?> ?>
<a href="<?php echo $activate_link; ?>" class="<?php echo $thickbox_class; ?> screenshot"> <a href="<?php echo $activate_link; ?>" class="<?php echo $thickbox_class; ?> screenshot">
<?php if ( $screenshot ) : ?> <?php if ( $screenshot ) : ?>
<img src="<?php echo ( $tpage == 'stage' ) ? $screenshot : get_option('siteurl') . '/' . $stylesheet_dir . '/' . $screenshot; ?>" alt="" /> <img src="<?php echo ( $tpage == 'stage' ) ? $screenshot : site_url($stylesheet_dir . '/' . $screenshot); ?>" alt="" />
<?php endif; ?> <?php endif; ?>
</a> </a>
<h3><a class="<?php echo $thickbox_class; ?>" href="<?php echo $activate_link; ?>"><?php echo $title; ?></a></h3> <h3><a class="<?php echo $thickbox_class; ?>" href="<?php echo $activate_link; ?>"><?php echo $title; ?></a></h3>

View File

@ -396,9 +396,9 @@ foreach ( $wp_user_search->get_results() as $userid ) {
<?php <?php
if ( get_option('users_can_register') ) if ( get_option('users_can_register') )
echo '<p>' . sprintf(__('Users can <a href="%1$s">register themselves</a> or you can manually create users here.'), get_option('siteurl').'/wp-register.php') . '</p>'; echo '<p>' . sprintf(__('Users can <a href="%1$s">register themselves</a> or you can manually create users here.'), site_url('wp-register.php')) . '</p>';
else else
echo '<p>' . sprintf(__('Users cannot currently <a href="%1$s">register themselves</a>, but you can manually create users here.'), get_option('siteurl').'/wp-admin/options-general.php#users_can_register') . '</p>'; echo '<p>' . sprintf(__('Users cannot currently <a href="%1$s">register themselves</a>, but you can manually create users here.'), admin_url('options-general.php#users_can_register')) . '</p>';
?> ?>
<form action="#add-new-user" method="post" name="adduser" id="adduser" class="add:users: validate"> <form action="#add-new-user" method="post" name="adduser" id="adduser" class="add:users: validate">
<?php wp_nonce_field('add-user') ?> <?php wp_nonce_field('add-user') ?>

View File

@ -1765,4 +1765,7 @@ function validate_file( $file, $allowed_files = '' ) {
return 0; return 0;
} }
function is_ssl() {
return ( 'on' == strtolower($_SERVER['HTTPS']) ) ? true : false;
}
?> ?>

View File

@ -1139,7 +1139,7 @@ function wp_admin_css_uri( $file = 'wp-admin' ) {
if ( defined('WP_INSTALLING') ) { if ( defined('WP_INSTALLING') ) {
$_file = "./$file.css"; $_file = "./$file.css";
} else { } else {
$_file = get_option( 'siteurl' ) . "/wp-admin/$file.css"; $_file = admin_url("$file.css");
} }
$_file = add_query_arg( 'version', get_bloginfo( 'version' ), $_file ); $_file = add_query_arg( 'version', get_bloginfo( 'version' ), $_file );

View File

@ -774,4 +774,42 @@ function get_shortcut_link() {
return apply_filters('shortcut_link', $link); return apply_filters('shortcut_link', $link);
} }
// return the site_url option, using https if is_ssl() is true
// if $scheme is 'http' or 'https' it will override is_ssl()
function site_url($path = '', $scheme = null) {
// should the list of allowed schemes be maintained elsewhere?
if ( !in_array($scheme, array('http', 'https')) )
$scheme = ( is_ssl() ? 'https' : 'http' );
$url = str_replace( 'http://', "{$scheme}://", get_option('siteurl') );
if ( !empty($path) && is_string($path) && strpos($path, '..') === false )
$url .= '/' . ltrim($path, '/');
return $url;
}
function admin_url($path = '') {
global $_wp_admin_url;
$url = site_url() . '/wp-admin/';
if ( !empty($path) && is_string($path) && strpos($path, '..') === false )
$url .= ltrim($path, '/');
return $url;
}
function includes_url($path = '') {
global $_wp_includes_url;
$url = site_url() . '/' . WPINC . '/';
if ( !empty($path) && is_string($path) && strpos($path, '..') === false )
$url .= ltrim($path, '/');
return $url;
}
?> ?>

View File

@ -306,7 +306,7 @@ function wp_get_attachment_image_src($attachment_id, $size='thumbnail', $icon =
return $image; return $image;
if ( $icon && $src = wp_mime_type_icon($attachment_id) ) { if ( $icon && $src = wp_mime_type_icon($attachment_id) ) {
$icon_dir = apply_filters( 'icon_dir', ABSPATH . WPINC . '/images/crystal' ); $icon_dir = apply_filters( 'icon_dir', includes_url('images/crystal') );
$src_file = $icon_dir . '/' . basename($src); $src_file = $icon_dir . '/' . basename($src);
@list($width, $height) = getimagesize($src_file); @list($width, $height) = getimagesize($src_file);
} }

View File

@ -469,9 +469,14 @@ if ( !function_exists('wp_validate_auth_cookie') ) :
*/ */
function wp_validate_auth_cookie($cookie = '') { function wp_validate_auth_cookie($cookie = '') {
if ( empty($cookie) ) { if ( empty($cookie) ) {
if ( empty($_COOKIE[AUTH_COOKIE]) ) if ( is_ssl() )
$cookie_name = SECURE_AUTH_COOKIE;
else
$cookie_name = AUTH_COOKIE;
if ( empty($_COOKIE[$cookie_name]) )
return false; return false;
$cookie = $_COOKIE[AUTH_COOKIE]; $cookie = $_COOKIE[$cookie_name];
} }
$cookie_elements = explode('|', $cookie); $cookie_elements = explode('|', $cookie);
@ -514,9 +519,10 @@ if ( !function_exists('wp_generate_auth_cookie') ) :
* *
* @param int $user_id User ID * @param int $user_id User ID
* @param int $expiration Cookie expiration in seconds * @param int $expiration Cookie expiration in seconds
* @param bool $secure Whether the cookie is for https delivery only or not. Not used by default. For plugin use.
* @return string Authentication cookie contents * @return string Authentication cookie contents
*/ */
function wp_generate_auth_cookie($user_id, $expiration) { function wp_generate_auth_cookie($user_id, $expiration, $secure = false) {
$user = get_userdata($user_id); $user = get_userdata($user_id);
$key = wp_hash($user->user_login . '|' . $expiration); $key = wp_hash($user->user_login . '|' . $expiration);
@ -524,7 +530,7 @@ function wp_generate_auth_cookie($user_id, $expiration) {
$cookie = $user->user_login . '|' . $expiration . '|' . $hash; $cookie = $user->user_login . '|' . $expiration . '|' . $hash;
return apply_filters('auth_cookie', $cookie, $user_id, $expiration); return apply_filters('auth_cookie', $cookie, $user_id, $expiration, $secure);
} }
endif; endif;
@ -550,13 +556,21 @@ function wp_set_auth_cookie($user_id, $remember = false) {
$expire = 0; $expire = 0;
} }
$cookie = wp_generate_auth_cookie($user_id, $expiration); if ( is_ssl() ) {
$secure = true;
$cookie_name = SECURE_AUTH_COOKIE;
} else {
$secure = false;
$cookie_name = AUTH_COOKIE;
}
do_action('set_auth_cookie', $cookie, $expire); $cookie = wp_generate_auth_cookie($user_id, $expiration, $secure);
setcookie(AUTH_COOKIE, $cookie, $expire, COOKIEPATH, COOKIE_DOMAIN); do_action('set_auth_cookie', $cookie, $expire, $secure);
setcookie($cookie_name, $cookie, $expire, COOKIEPATH, COOKIE_DOMAIN, $secure);
if ( COOKIEPATH != SITECOOKIEPATH ) if ( COOKIEPATH != SITECOOKIEPATH )
setcookie(AUTH_COOKIE, $cookie, $expire, SITECOOKIEPATH, COOKIE_DOMAIN); setcookie($cookie_name, $cookie, $expire, SITECOOKIEPATH, COOKIE_DOMAIN, $secure);
} }
endif; endif;
@ -569,6 +583,8 @@ if ( !function_exists('wp_clear_auth_cookie') ) :
function wp_clear_auth_cookie() { function wp_clear_auth_cookie() {
setcookie(AUTH_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN); setcookie(AUTH_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN);
setcookie(AUTH_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN); setcookie(AUTH_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN);
setcookie(SECURE_AUTH_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN);
setcookie(SECURE_AUTH_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN);
// Old cookies // Old cookies
setcookie(USER_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN); setcookie(USER_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN);
@ -604,14 +620,36 @@ if ( !function_exists('auth_redirect') ) :
*/ */
function auth_redirect() { function auth_redirect() {
// Checks if a user is logged in, if not redirects them to the login page // Checks if a user is logged in, if not redirects them to the login page
if ( (!empty($_COOKIE[AUTH_COOKIE]) &&
!wp_validate_auth_cookie($_COOKIE[AUTH_COOKIE])) ||
(empty($_COOKIE[AUTH_COOKIE])) ) {
nocache_headers();
wp_redirect(get_option('siteurl') . '/wp-login.php?redirect_to=' . urlencode($_SERVER['REQUEST_URI'])); if ( is_ssl() || (defined('FORCE_SSL_LOGIN') && FORCE_SSL_LOGIN) )
exit(); $secure = true;
else
$secure = false;
// If https is required and request is http, redirect
if ( $secure && !is_ssl() ) {
if ( false !== strpos($_SERVER['REQUEST_URI'], 'http') ) {
wp_redirect(str_replace('http://', 'https://', $_SERVER['REQUEST_URI']));
exit();
} else {
wp_redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
exit();
}
} }
if ( wp_validate_auth_cookie() )
return; // The cookie is good so we're done
// The cookie is no good so force login
nocache_headers();
$login_url = get_option('siteurl') . '/wp-login.php?redirect_to=' . urlencode($_SERVER['REQUEST_URI']);
// Redirect to https if connection is secure
if ( $secure )
$login_url = str_replace('http://', 'https://', $login_url);
wp_redirect($login_url);
exit();
} }
endif; endif;

View File

@ -7,7 +7,7 @@ require( ABSPATH . WPINC . '/class.wp-styles.php' );
require( ABSPATH . WPINC . '/functions.wp-styles.php' ); require( ABSPATH . WPINC . '/functions.wp-styles.php' );
function wp_default_scripts( &$scripts ) { function wp_default_scripts( &$scripts ) {
$scripts->base_url = get_option( 'siteurl' ); $scripts->base_url = site_url();
$scripts->default_version = get_bloginfo( 'version' ); $scripts->default_version = get_bloginfo( 'version' );
$scripts->add( 'common', '/wp-admin/js/common.js', array('jquery'), '20080318' ); $scripts->add( 'common', '/wp-admin/js/common.js', array('jquery'), '20080318' );
@ -50,7 +50,7 @@ function wp_default_scripts( &$scripts ) {
$scripts->add( 'wp-lists', '/wp-includes/js/wp-lists.js', array('wp-ajax-response'), '20080411' ); $scripts->add( 'wp-lists', '/wp-includes/js/wp-lists.js', array('wp-ajax-response'), '20080411' );
$scripts->localize( 'wp-lists', 'wpListL10n', array( $scripts->localize( 'wp-lists', 'wpListL10n', array(
'url' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php' 'url' => admin_url('admin-ajax.php')
) ); ) );
$scripts->add( 'scriptaculous-root', '/wp-includes/js/scriptaculous/scriptaculous.js', array('prototype'), '1.8.0'); $scripts->add( 'scriptaculous-root', '/wp-includes/js/scriptaculous/scriptaculous.js', array('prototype'), '1.8.0');
@ -129,11 +129,11 @@ function wp_default_scripts( &$scripts ) {
$scripts->add( 'upload', '/wp-admin/js/upload.js', array('jquery'), '20070518' ); $scripts->add( 'upload', '/wp-admin/js/upload.js', array('jquery'), '20070518' );
$scripts->add( 'postbox', '/wp-admin/js/postbox.js', array('jquery'), '20080128' ); $scripts->add( 'postbox', '/wp-admin/js/postbox.js', array('jquery'), '20080128' );
$scripts->localize( 'postbox', 'postboxL10n', array( $scripts->localize( 'postbox', 'postboxL10n', array(
'requestFile' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php', 'requestFile' => admin_url('admin-ajax.php'),
) ); ) );
$scripts->add( 'slug', '/wp-admin/js/slug.js', array('jquery'), '20080208' ); $scripts->add( 'slug', '/wp-admin/js/slug.js', array('jquery'), '20080208' );
$scripts->localize( 'slug', 'slugL10n', array( $scripts->localize( 'slug', 'slugL10n', array(
'requestFile' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php', 'requestFile' => admin_url('admin-ajax.php'),
'save' => __('Save'), 'save' => __('Save'),
'cancel' => __('Cancel'), 'cancel' => __('Cancel'),
) ); ) );
@ -204,7 +204,7 @@ function wp_default_scripts( &$scripts ) {
} }
function wp_default_styles( &$styles ) { function wp_default_styles( &$styles ) {
$styles->base_url = get_option( 'siteurl' ); $styles->base_url = site_url();
$styles->default_version = get_bloginfo( 'version' ); $styles->default_version = get_bloginfo( 'version' );
$styles->text_direction = 'rtl' == get_bloginfo( 'text_direction' ) ? 'rtl' : 'ltr'; $styles->text_direction = 'rtl' == get_bloginfo( 'text_direction' ) ? 'rtl' : 'ltr';
@ -258,7 +258,7 @@ function wp_just_in_time_script_localization() {
'autosaveInterval' => AUTOSAVE_INTERVAL, 'autosaveInterval' => AUTOSAVE_INTERVAL,
'previewPageText' => __('Preview this Page'), 'previewPageText' => __('Preview this Page'),
'previewPostText' => __('Preview this Post'), 'previewPostText' => __('Preview this Post'),
'requestFile' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php', 'requestFile' => admin_url('admin-ajax.php'),
'savingText' => __('Saving Draft&#8230;') 'savingText' => __('Saving Draft&#8230;')
) ); ) );
} }

View File

@ -137,7 +137,7 @@ function retrieve_password() {
$message .= get_option('siteurl') . "\r\n\r\n"; $message .= get_option('siteurl') . "\r\n\r\n";
$message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
$message .= __('To reset your password visit the following address, otherwise just ignore this email and nothing will happen.') . "\r\n\r\n"; $message .= __('To reset your password visit the following address, otherwise just ignore this email and nothing will happen.') . "\r\n\r\n";
$message .= get_option('siteurl') . "/wp-login.php?action=rp&key=$key\r\n"; $message .= site_url("wp-login.php?action=rp&key=$key") . "\r\n";
if ( !wp_mail($user_email, sprintf(__('[%s] Password Reset'), get_option('blogname')), $message) ) if ( !wp_mail($user_email, sprintf(__('[%s] Password Reset'), get_option('blogname')), $message) )
die('<p>' . __('The e-mail could not be sent.') . "<br />\n" . __('Possible reason: your host may have disabled the mail() function...') . '</p>'); die('<p>' . __('The e-mail could not be sent.') . "<br />\n" . __('Possible reason: your host may have disabled the mail() function...') . '</p>');
@ -174,7 +174,7 @@ function reset_password($key) {
wp_set_password($new_pass, $user->ID); wp_set_password($new_pass, $user->ID);
$message = sprintf(__('Username: %s'), $user->user_login) . "\r\n"; $message = sprintf(__('Username: %s'), $user->user_login) . "\r\n";
$message .= sprintf(__('Password: %s'), $new_pass) . "\r\n"; $message .= sprintf(__('Password: %s'), $new_pass) . "\r\n";
$message .= get_option('siteurl') . "/wp-login.php\r\n"; $message .= site_url('wp-login.php') . "\r\n";
if ( !wp_mail($user->user_email, sprintf(__('[%s] Your new password'), get_option('blogname')), $message) ) if ( !wp_mail($user->user_email, sprintf(__('[%s] Your new password'), get_option('blogname')), $message) )
die('<p>' . __('The e-mail could not be sent.') . "<br />\n" . __('Possible reason: your host may have disabled the mail() function...') . '</p>'); die('<p>' . __('The e-mail could not be sent.') . "<br />\n" . __('Possible reason: your host may have disabled the mail() function...') . '</p>');
@ -405,7 +405,7 @@ default:
if ( !is_wp_error($user) ) { if ( !is_wp_error($user) ) {
// If the user can't edit posts, send them to their profile. // If the user can't edit posts, send them to their profile.
if ( !$user->has_cap('edit_posts') && ( empty( $redirect_to ) || $redirect_to == 'wp-admin/' ) ) if ( !$user->has_cap('edit_posts') && ( empty( $redirect_to ) || $redirect_to == 'wp-admin/' ) )
$redirect_to = get_option('siteurl') . '/wp-admin/profile.php'; $redirect_to = admin_url('profile.php');
wp_safe_redirect($redirect_to); wp_safe_redirect($redirect_to);
exit(); exit();
} }

View File

@ -309,6 +309,13 @@ if ( !defined('PASS_COOKIE') )
if ( !defined('AUTH_COOKIE') ) if ( !defined('AUTH_COOKIE') )
define('AUTH_COOKIE', 'wordpress_' . COOKIEHASH); define('AUTH_COOKIE', 'wordpress_' . COOKIEHASH);
/**
* It is possible to define this in wp-config.php
* @since 2.6
*/
if ( !defined('SECURE_AUTH_COOKIE') )
define('SECURE_AUTH_COOKIE', 'wordpress_sec_' . COOKIEHASH);
/** /**
* It is possible to define this in wp-config.php * It is possible to define this in wp-config.php
* @since 2.3.0 * @since 2.3.0