From d567007a427acf9dbf51fa3e4f8519fe905f7b1d Mon Sep 17 00:00:00 2001 From: ryan Date: Thu, 15 Dec 2005 16:45:20 +0000 Subject: [PATCH] Don't treat a numeric user name as an id. git-svn-id: http://svn.automattic.com/wordpress/trunk@3310 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/capabilities.php | 16 ++++++++++------ wp-login.php | 2 +- xmlrpc.php | 22 +++++++++++----------- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/wp-includes/capabilities.php b/wp-includes/capabilities.php index 1c33503597..646c143d22 100644 --- a/wp-includes/capabilities.php +++ b/wp-includes/capabilities.php @@ -114,18 +114,22 @@ class WP_User { var $roles = array(); var $allcaps = array(); - function WP_User($id) { + function WP_User($id, $name = '') { global $wp_roles, $table_prefix; - if ( empty($id) ) + if ( empty($id) && empty($name) ) return; - if ( is_numeric($id) ) { - $this->data = get_userdata($id); - } else { - $this->data = get_userdatabylogin($id); + if ( ! is_numeric($id) ) { + $name = $id; + $id = 0; } + if ( ! empty($id) ) + $this->data = get_userdata($id); + else + $this->data = get_userdatabylogin($name); + if ( empty($this->data->ID) ) return; diff --git a/wp-login.php b/wp-login.php index 5039888b27..27ebadd2b3 100644 --- a/wp-login.php +++ b/wp-login.php @@ -187,7 +187,7 @@ default: do_action('wp_authenticate', array(&$user_login, &$user_pass)); if ( $_POST ) { - $user = new WP_User($user_login); + $user = new WP_User(0, $user_login); // 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/' ) ) diff --git a/xmlrpc.php b/xmlrpc.php index 51459aa33e..bac38e11a6 100644 --- a/xmlrpc.php +++ b/xmlrpc.php @@ -179,7 +179,7 @@ class wp_xmlrpc_server extends IXR_Server { return $this->error; } - $user = new WP_User($user_login); + $user = new WP_User(0, $user_login); $is_admin = $user->has_cap('level_8'); $struct = array( @@ -317,7 +317,7 @@ class wp_xmlrpc_server extends IXR_Server { return $this->error; } - $user = new WP_User($user_login); + $user = new WP_User(0, $user_login); if ( !$user->has_cap('edit_themes') ) { return new IXR_Error(401, 'Sorry, this user can not edit the template.'); } @@ -352,7 +352,7 @@ class wp_xmlrpc_server extends IXR_Server { return $this->error; } - $user = new WP_User($user_login); + $user = new WP_User(0, $user_login); if ( !$user->has_cap('edit_themes') ) { return new IXR_Error(401, 'Sorry, this user can not edit the template.'); } @@ -391,7 +391,7 @@ class wp_xmlrpc_server extends IXR_Server { $cap = ($publish) ? 'publish_posts' : 'edit_posts'; - $user = new WP_User($user_login); + $user = new WP_User(0, $user_login); if ( !$user->has_cap($cap) ) return new IXR_Error(401, 'Sorry, you can not post on this weblog or category.'); @@ -445,7 +445,7 @@ class wp_xmlrpc_server extends IXR_Server { $this->escape($actual_post); - $user = new WP_User($user_login); + $user = new WP_User(0, $user_login); if ( !$user->has_cap('edit_post', $post_ID) ) return new IXR_Error(401, 'Sorry, you do not have the right to edit this post.'); @@ -489,7 +489,7 @@ class wp_xmlrpc_server extends IXR_Server { return new IXR_Error(404, 'Sorry, no such post.'); } - $user = new WP_User($user_login); + $user = new WP_User(0, $user_login); if ( !$user->has_cap('edit_post', $post_ID) ) return new IXR_Error(401, 'Sorry, you do not have the right to delete this post.'); @@ -525,7 +525,7 @@ class wp_xmlrpc_server extends IXR_Server { return $this->error; } - $user = new WP_User($user_login); + $user = new WP_User(0, $user_login); if ( !$user->has_cap('publish_posts') ) return new IXR_Error(401, 'Sorry, you can not post on this weblog or category.'); @@ -605,7 +605,7 @@ class wp_xmlrpc_server extends IXR_Server { return $this->error; } - $user = new WP_User($user_login); + $user = new WP_User(0, $user_login); if ( !$user->has_cap('edit_post', $post_ID) ) return new IXR_Error(401, 'Sorry, you can not edit this post.'); @@ -844,7 +844,7 @@ class wp_xmlrpc_server extends IXR_Server { if ( !$this->login_pass_ok($user_login, $user_pass) ) return $this->error; - $user = new WP_User($user_login); + $user = new WP_User(0, $user_login); if ( !$user->has_cap('upload_files') ) { logIO('O', '(MW) User does not have upload_files capability'); @@ -984,7 +984,7 @@ class wp_xmlrpc_server extends IXR_Server { return $this->error; } - $user = new WP_User($user_login); + $user = new WP_User(0, $user_login); if ( !$user->has_cap('edit_post', $post_ID) ) return new IXR_Error(401, 'Sorry, you can not edit this post.'); @@ -1066,7 +1066,7 @@ class wp_xmlrpc_server extends IXR_Server { return $this->error; } - $user = new WP_User($user_login); + $user = new WP_User(0, $user_login); if ( !$user->has_cap('edit_post', $post_ID) ) return new IXR_Error(401, 'Sorry, you can not edit this post.');