/**
  * @see	Form::validate()
  */
 public function validate()
 {
     parent::validate();
     // only for guests
     if (WCF::getUser()->userID == 0) {
         // username
         if (empty($this->username)) {
             throw new UserInputException('username');
         }
         if (!UserUtil::isValidUsername($this->username)) {
             throw new UserInputException('username', 'notValid');
         }
         if (!UserUtil::isAvailableUsername($this->username)) {
             throw new UserInputException('username', 'notAvailable');
         }
         WCF::getSession()->setUsername($this->username);
     } else {
         $this->username = WCF::getUser()->username;
     }
 }
 /**
  * Validates the username
  */
 protected function validateUsername()
 {
     if (!WCF::getUser()->userID) {
         if (empty($this->username)) {
             throw new UserInputException('username');
         }
         if (!UserUtil::isValidUsername($this->username)) {
             throw new UserInputException('username', 'notValid');
         }
         if (!UserUtil::isAvailableUsername($this->username)) {
             throw new UserInputException('username', 'notAvailable');
         }
         WCF::getSession()->setUsername($this->username);
     } else {
         $this->username = WCF::getUser()->username;
     }
 }
 /**
  * Throws a UserInputException if the username is not unique or not valid.
  * 
  * @param	string		$username
  */
 protected function validateUsername($username)
 {
     if (empty($username)) {
         throw new UserInputException('username');
     }
     // check for forbidden chars (e.g. the ",")
     if (!UserUtil::isValidUsername($username)) {
         throw new UserInputException('username', 'notValid');
     }
     // Check if username exists already.
     if (!UserUtil::isAvailableUsername($username)) {
         throw new UserInputException('username', 'notUnique');
     }
 }
 /**
  * @see Form::validate()
  */
 public function validate()
 {
     parent::validate();
     // password
     if (empty($this->password)) {
         throw new UserInputException('password');
     }
     if (!WCF::getUser()->checkPassword($this->password)) {
         throw new UserInputException('password', 'false');
     }
     // username
     if ($this->canChangeUsername && $this->username != WCF::getUser()->username) {
         if (StringUtil::toLowerCase($this->username) != StringUtil::toLowerCase(WCF::getUser()->username)) {
             // check for forbidden chars (e.g. the ",")
             if (!UserRegistrationUtil::isValidUsername($this->username)) {
                 throw new UserInputException('username', 'notValid');
             }
             // Check if username exists already.
             if (!UserUtil::isAvailableUsername($this->username)) {
                 throw new UserInputException('username', 'notUnique');
             }
         }
     }
     // password
     if (!empty($this->newPassword) || !empty($this->confirmNewPassword)) {
         if (empty($this->newPassword)) {
             throw new UserInputException('newPassword');
         }
         if (empty($this->confirmNewPassword)) {
             throw new UserInputException('confirmNewPassword');
         }
         if (!UserRegistrationUtil::isSecurePassword($this->newPassword)) {
             throw new UserInputException('newPassword', 'notSecure');
         }
         if ($this->newPassword != $this->confirmNewPassword) {
             throw new UserInputException('confirmNewPassword', 'notEqual');
         }
     }
     // email
     if (WCF::getUser()->getPermission('user.profile.canChangeEmail') && $this->email != WCF::getUser()->email && $this->email != WCF::getUser()->newEmail) {
         if (empty($this->email)) {
             throw new UserInputException('email');
         }
         // check if only letter case is changed
         if (StringUtil::toLowerCase($this->email) != StringUtil::toLowerCase(WCF::getUser()->email)) {
             // check for valid email (one @ etc.)
             if (!UserRegistrationUtil::isValidEmail($this->email)) {
                 throw new UserInputException('email', 'notValid');
             }
             // Check if email exists already.
             if (!UserUtil::isAvailableEmail($this->email)) {
                 throw new UserInputException('email', 'notUnique');
             }
         }
         // check confirm input
         if (StringUtil::toLowerCase($this->email) != StringUtil::toLowerCase($this->confirmEmail)) {
             throw new UserInputException('confirmEmail', 'notEqual');
         }
     }
 }
 /**
  * Validates the username.
  */
 protected function validateUsername()
 {
     // only for guests
     if (WCF::getUser()->userID == 0) {
         if (empty($this->username)) {
             throw new UserInputException('username');
         }
         if (!UserUtil::isValidUsername($this->username)) {
             throw new UserInputException('username', 'invalid');
         }
         if (!UserUtil::isAvailableUsername($this->username)) {
             throw new UserInputException('username', 'notUnique');
         }
         WCF::getSession()->register('username', $this->username);
     }
 }