gettext('password.passwordnoseq'), $rcmail->gettext('password.passwordnocommon'), ]; return $rules; } /** * Password strength check * * @param string $passwd Password * * @return array Score (1 to 5) and Reason */ public function check_strength($passwd) { if (!class_exists('ZxcvbnPhp\Zxcvbn')) { rcube::raise_error('Password plugin: Zxcvbn library not found.', true, true); } $rcmail = rcmail::get_instance(); $userData = [ $rcmail->user->get_username('local'), $_SESSION['username'], ]; $zxcvbn = new Zxcvbn(); // @phpstan-ignore-line $strength = $zxcvbn->passwordStrength($passwd, $userData); // @phpstan-ignore-line return [$strength['score'] + 1, $strength['feedback']['warning']]; } }