strlen( $password ) ) { $status->error( 'passwordtooshort', $policyVal ); } return $status; } /** * Check password is longer than minimum, fatal * @param int $policyVal minimal length * @param User $user * @param string $password * @return Status fatal if $password is shorter than $policyVal */ public static function checkMinimumPasswordLengthToLogin( $policyVal, User $user, $password ) { $status = Status::newGood(); if ( $policyVal > strlen( $password ) ) { $status->fatal( 'passwordtooshort', $policyVal ); } return $status; } /** * Check password is shorter than maximum, fatal * @param int $policyVal maximum length * @param User $user * @param string $password * @return Status fatal if $password is shorter than $policyVal */ public static function checkMaximalPasswordLength( $policyVal, User $user, $password ) { $status = Status::newGood(); if ( $policyVal < strlen( $password ) ) { $status->fatal( 'passwordtoolong', $policyVal ); } return $status; } /** * Check if username and password match * @param bool $policyVal true to force compliance. * @param User $user * @param string $password * @return Status error if username and password match, and policy is true */ public static function checkPasswordCannotMatchUsername( $policyVal, User $user, $password ) { global $wgContLang; $status = Status::newGood(); $username = $user->getName(); if ( $policyVal && $wgContLang->lc( $password ) === $wgContLang->lc( $username ) ) { $status->error( 'password-name-match' ); } return $status; } /** * Check if username and password are on a blacklist * @param bool $policyVal true to force compliance. * @param User $user * @param string $password * @return Status error if username and password match, and policy is true */ public static function checkPasswordCannotMatchBlacklist( $policyVal, User $user, $password ) { static $blockedLogins = array( 'Useruser' => 'Passpass', 'Useruser1' => 'Passpass1', # r75589 'Apitestsysop' => 'testpass', 'Apitestuser' => 'testpass' # r75605 ); $status = Status::newGood(); $username = $user->getName(); if ( $policyVal && isset( $blockedLogins[$username] ) && $password == $blockedLogins[$username] ) { $status->error( 'password-login-forbidden' ); } return $status; } }