From 53eef6d943f652f04e9e5b395fc43e1a893172a6 Mon Sep 17 00:00:00 2001 From: matt Date: Wed, 9 Mar 2005 22:49:42 +0000 Subject: [PATCH] Allowing more hooks into authentication - Hat tip: http://dev.webadmin.ufl.edu/~dwc/2005/03/02/authentication-plugins/ git-svn-id: http://svn.automattic.com/wordpress/trunk@2425 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/profile.php | 21 +++++++++++++++------ wp-admin/user-edit.php | 21 +++++++++++++++------ wp-admin/users.php | 27 ++++++++++++++------------- wp-login.php | 14 ++++++++------ 4 files changed, 52 insertions(+), 31 deletions(-) diff --git a/wp-admin/profile.php b/wp-admin/profile.php index 9b0a17ab0..97e0b0ab9 100644 --- a/wp-admin/profile.php +++ b/wp-admin/profile.php @@ -51,16 +51,20 @@ case 'update': return false; } - if ($_POST["pass1"] == "") { - if ($_POST["pass2"] != "") + $pass1 = $_POST["pass1"]; + $pass2 = $_POST["pass2"]; + do_action('check_passwords', array($user_login, &$pass1, &$pass2)); + + if ( '' == $pass1 ) { + if ( '' == $pass2 ) die (__("ERROR: you typed your new password only once. Go back to type it twice.")); $updatepassword = ""; } else { - if ($_POST["pass2"] == "") + if ('' == $pass2) die (__("ERROR: you typed your new password only once. Go back to type it twice.")); - if ($_POST["pass1"] != $_POST["pass2"]) + if ( $pass1 != $pass2 ) die (__("ERROR: you typed two different passwords. Go back to correct that.")); - $newuser_pass = $_POST["pass1"]; + $newuser_pass = $pass1; $updatepassword = "user_pass=MD5('$newuser_pass'), "; wp_clearcookie(); wp_setcookie($user_login, $newuser_pass); @@ -69,7 +73,7 @@ case 'update': $newuser_firstname = wp_specialchars($_POST['newuser_firstname']); $newuser_lastname = wp_specialchars($_POST['newuser_lastname']); $newuser_nickname = $_POST['newuser_nickname']; - $newuser_nicename = sanitize_title($newuser_nickname); + $newuser_nicename = sanitize_title($newuser_nickname); $newuser_icq = wp_specialchars($_POST['newuser_icq']); $newuser_aim = wp_specialchars($_POST['newuser_aim']); $newuser_msn = wp_specialchars($_POST['newuser_msn']); @@ -225,12 +229,17 @@ if (isset($updated)) { ?> + Password (Leave blank to stay the same.)') ?>
+

diff --git a/wp-admin/user-edit.php b/wp-admin/user-edit.php index e57416285..a8e451242 100644 --- a/wp-admin/user-edit.php +++ b/wp-admin/user-edit.php @@ -34,20 +34,24 @@ if (empty($_POST["new_nickname"])) { return false; } -if ($_POST['pass1'] == '') { - if ($_POST['pass2'] != '') +$new_user_login = wp_specialchars($_POST['new_user_login']); +$pass1 = $_POST['pass1']; +$pass2 = $_POST['pass2']; +do_action('check_passwords', array($new_user_login, &$pass1, &$pass2)); + +if ( '' == $pass1 ) { + if ( '' == $pass2 ) die (__("ERROR: you typed your new password only once. Go back to type it twice.")); $updatepassword = ''; } else { - if ($_POST['pass2'] == "") + if ( '' == $pass2) die (__("ERROR: you typed your new password only once. Go back to type it twice.")); - if ($_POST['pass1'] != $_POST['pass2']) + if ( $pass1 != $pass2 ) die (__("ERROR: you typed two different passwords. Go back to correct that.")); - $new_pass = $_POST["pass1"]; + $new_pass = $pass1; $updatepassword = "user_pass=MD5('$new_pass'), "; } -$new_user_login = wp_specialchars($_POST['new_user_login']); $new_firstname = wp_specialchars($_POST['new_firstname']); $new_lastname = wp_specialchars($_POST['new_lastname']); $new_nickname = $_POST['new_nickname']; @@ -180,12 +184,17 @@ if ($edituser->user_level >= $user_level) die( __('You do not have permission to + Password (Leave blank to stay the same.)') ?>
+

diff --git a/wp-admin/users.php b/wp-admin/users.php index a8dec9db7..5628d24a3 100644 --- a/wp-admin/users.php +++ b/wp-admin/users.php @@ -33,26 +33,24 @@ case 'adduser': $user_uri = wp_specialchars($_POST['uri']); /* checking login has been typed */ - if ($user_login == '') { + if ($user_login == '') die (__('ERROR: Please enter a login.')); - } /* checking the password has been typed twice */ - if ($pass1 == '' || $pass2 == '') { + do_action('check_passwords', array($user_login, &$pass1, &$pass2)); + if ($pass1 == '' || $pass2 == '') die (__('ERROR: Please enter your password twice.')); - } /* checking the password has been typed twice the same */ - if ($pass1 != $pass2) { + if ($pass1 != $pass2) die (__('ERROR: Please type the same password in the two password fields.')); - } + $user_nickname = $user_login; /* checking the login isn't already used by another user */ $loginthere = $wpdb->get_var("SELECT user_login FROM $wpdb->users WHERE user_login = '$user_login'"); - if ($loginthere) { + if ($loginthere) die (__('ERROR: This login is already registered, please choose another one.')); - } /* checking e-mail address */ if (empty($_POST["email"])) { @@ -75,16 +73,14 @@ case 'adduser': VALUES ('$user_login', MD5('$pass1'), '$user_nickname', '$user_email', '$user_ip', '$user_domain', '$user_browser', '$now', '$new_users_can_blog', 'nickname', '$user_firstname', '$user_lastname', '$user_nicename', '$user_uri')"); - if ($result == false) { + if ($result == false) die (__('ERROR: Couldn’t register you!')); - } $stars = ''; - for ($i = 0; $i < strlen($pass1); $i = $i + 1) { + for ($i = 0; $i < strlen($pass1); $i = $i + 1) $stars .= '*'; - } - $user_login = stripslashes($user_login); + $user_login = stripslashes($user_login); $message = 'New user registration on your blog ' . get_settings('blogname') . ":\r\n\r\n"; $message .= "Login: $user_login\r\n\r\nE-mail: $user_email"; @@ -308,12 +304,17 @@ echo "\n +
+

diff --git a/wp-login.php b/wp-login.php index 2a0d21b7b..ae7c863b8 100644 --- a/wp-login.php +++ b/wp-login.php @@ -33,8 +33,8 @@ case 'logout': break; case 'lostpassword': - - ?> +do_action('lost_password'); +?> @@ -95,6 +95,8 @@ case 'retrievepassword': if (!$user_email || $user_email != $_POST['email']) die(sprintf(__('Sorry, that user does not seem to exist in our database. Perhaps you have the wrong username or e-mail address? Try again.'), 'wp-login.php?action=lostpassword')); + do_action('retreive_password', $user_login); + // Generate something random for a password... md5'ing current time with a rand salt $key = substr( md5( uniqid( microtime() ) ), 0, 50); // now insert the new pass md5'd into the db @@ -106,8 +108,6 @@ case 'retrievepassword': $m = wp_mail($user_email, sprintf(__("[%s] Password Reset"), get_settings('blogname')), $message); - do_action('retreive_password', $user_login); - if ($m == false) { echo '

' . __('The e-mail could not be sent.') . "
\n"; echo __('Possible reason: your host may have disabled the mail() function...') . "

"; @@ -128,6 +128,8 @@ case 'resetpass' : if ( !$user ) die( __('Sorry, that key does not appear to be valid.') ); + do_action('password_reset'); + $new_pass = substr( md5( uniqid( microtime() ) ), 0, 7); $wpdb->query("UPDATE $wpdb->users SET user_pass = MD5('$new_pass'), user_activation_key = '' WHERE user_login = '$user->user_login'"); $message = __('Login') . ": $user->user_login\r\n"; @@ -136,8 +138,6 @@ case 'resetpass' : $m = wp_mail($user->user_email, sprintf(__("[%s] Your new password"), get_settings('blogname')), $message); - do_action('password_reset'); - if ($m == false) { echo '

' . __('The e-mail could not be sent.') . "
\n"; echo __('Possible reason: your host may have disabled the mail() function...') . "

"; @@ -172,6 +172,8 @@ default: } } + do_action('wp_authenticate', array(&$user_login, &$user_pass)); + if ($user_login && $user_pass) { $user = get_userdatabylogin($user_login); if ( 0 == $user->user_level )