public static function validatePassword(User $user, $value)
 {
     $length = strlen($value);
     $config = $user->getMain()->getConfig();
     $messages = $user->getMain()->getMessages();
     $minLength = $config->getNested("Registration.MinLength", 4);
     if ($length < $minLength) {
         $user->getPlayer()->sendMessage($messages->getNested("Register.PasswordUnderflow", "too short"));
         return false;
     }
     $maxLength = $config->getNested("Registration.MaxLength", -1);
     if ($maxLength !== -1 and $length > $maxLength) {
         $user->getPlayer()->sendMessage($messages->getNested("Register.PasswordOverflow", "too long"));
         return false;
     }
     if ($config->getNested("Registration.BanPureLetters", false) and preg_match('/^[a-z]+$/i', $value)) {
         $user->getPlayer()->sendMessage($messages->getNested("Register.PasswordPureLetters", "only letters"));
         return false;
     }
     if ($config->getNested("Registration.BanPureNumbers", false) and preg_match('/^[0-9]+$/', $value)) {
         $user->getPlayer()->sendMessage($messages->getNested("Register.PasswordPureNumbers", "only numbers"));
         return false;
     }
     if ($config->getNested("Registration.DisallowSlashes", true) and $value[0] === "/") {
         $user->getPlayer()->sendMessage($messages->getNested("Register.PasswordSlashes", "do not start with slashes"));
         return false;
     }
     return true;
 }
예제 #2
0
 public function __construct(User $user)
 {
     $this->user = $user;
     $this->steps[] = new PasswordInputRegistrationStep($user);
     if ($this->user->getMain()->getConfig()->getNested("Registration.RequireConfirm", true)) {
         $this->steps[] = new PasswordConfirmRegistrationStep($user);
     }
     foreach ($user->getMain()->getConfig()->getNested("Registration.ExtraFields", []) as $i => $field) {
         if (!isset($field["Message"], $field["FieldName"])) {
             $this->user->getMain()->getLogger()->warning("The #" . ($i + 1) . " entry in Registration.ExtraFields is does not have the Message/FieldName line! It is not going to be added.");
             continue;
         }
         $message = $field["Message"];
         $fieldName = $field["FieldName"];
         $regex = null;
         $error = null;
         if (isset($field["RegExp"], $field["ErrorMessage"])) {
             $regex = $field["RegExp"];
             $error = $field["ErrorMessage"];
         }
         $this->addStep(new ConfigDefinedRegistrationStep($this->user, $message, $fieldName, $regex, $error));
     }
 }
예제 #3
0
 public function __construct(User $user)
 {
     parent::__construct($user->getMain());
     $this->user = $user;
 }