function bb_check_login($user, $pass, $already_md5 = false)
 {
     global $wp_users_object;
     if (!bb_get_option('email_login') || false === strpos($user, '@')) {
         // user_login
         $user = $wp_users_object->get_user($user, array('by' => 'login'));
     } else {
         // maybe an email
         $email_user = $wp_users_object->get_user($user, array('by' => 'email'));
         $user = $wp_users_object->get_user($user, array('by' => 'login'));
         // 9 cases.  each can be FALSE, USER, or WP_ERROR
         if (!$email_user && $user || is_wp_error($email_user) && $user && !is_wp_error($user)) {
             // nope: it really was a user_login
             // [sic]: use $user
         } elseif ($email_user && !$user || $email_user && !is_wp_error($email_user) && is_wp_error($user)) {
             // yup: it was an email
             $user =& $email_user;
         } elseif (!$email_user && !$user) {
             // FALSE && FALSE
             // Doesn't matter what it was: neither worked
             return false;
         } elseif (is_wp_error($email_user) && is_wp_error($user)) {
             // WP_ERROR && WP_ERROR
             // This can't happen.  If it does, let's use the email error.  It's probably "multiple matches", so maybe logging in with a username will work
             $user =& $email_user;
         } elseif ($email_user && $user) {
             // USER && USER
             // both are user objects
             if ($email_user->ID == $user->ID) {
             } elseif (bb_check_password($pass, $user->user_pass, $user->ID)) {
             } elseif (bb_check_password($pass, $email_user->user_pass, $email_user->ID)) {
                 $user =& $email_user;
             }
         } else {
             // This can't happen, that's all 9 cases.
             // [sic]: use $user
         }
     }
     if (!$user) {
         return false;
     }
     if (is_wp_error($user)) {
         return $user;
     }
     if (!bb_check_password($pass, $user->user_pass, $user->ID)) {
         return false;
     }
     // User is logging in for the first time, update their user_status to normal
     if (1 == $user->user_status) {
         bb_update_user_status($user->ID, 0);
     }
     return $user;
 }
Exemplo n.º 2
0
 function nxt_check_password($password, $hash, $user_id = '')
 {
     bb_log_deprecated('function', __FUNCTION__, 'bb_check_password');
     return bb_check_password($password, $hash, $user_id);
 }