예제 #1
0
 /**
  * Verify user name
  * @param bool $fast Skip database checks
  * @return null|string
  */
 public function verifyLogin($fast = false)
 {
     if (!Users::isLoginNamesEnabled()) {
         return null;
     }
     // check e-mail
     if (!$this->ignoreEmpty) {
         if ($this->login === '') {
             return $this->failures['login'] = self::REGISTER_LOGIN_EMPTY;
         } elseif (!self::isLoginValid($this->login)) {
             return $this->failures['login'] = self::REGISTER_LOGIN_INVALID;
         } elseif (strlen($this->login) < Users::getLoginMinChars()) {
             return $this->failures['login'] = self::REGISTER_LOGIN_SHORT;
         } elseif (strlen($this->login) > Users::getLoginMaxChars()) {
             return $this->failures['login'] = self::REGISTER_LOGIN_LONG;
         } elseif (!$fast and !self::isLoginAvailable($this->login)) {
             return $this->failures['login'] = self::REGISTER_LOGIN_EXISTS;
         } else {
             return $this->successful['login'] = self::REGISTER_LOGIN_OK;
         }
     } elseif ($this->login !== '') {
         if (!self::isLoginValid($this->login)) {
             return $this->failures['login'] = self::REGISTER_LOGIN_INVALID;
         } elseif (strlen($this->login) < Users::getLoginMinChars()) {
             return $this->failures['login'] = self::REGISTER_LOGIN_SHORT;
         } elseif (strlen($this->login) > Users::getLoginMaxChars()) {
             return $this->failures['login'] = self::REGISTER_LOGIN_LONG;
         } elseif (!$fast and !self::isLoginAvailable($this->login)) {
             return $this->failures['login'] = self::REGISTER_LOGIN_EXISTS;
         }
     }
     return null;
 }