/**
  * Returns true if the given name is a valid username.
  * 
  * @param	string		$name		username
  * @return	boolean
  */
 public static function isValidUsername($name)
 {
     if (!UserUtil::isValidUsername($name)) {
         return false;
     }
     $length = mb_strlen($name);
     if ($length < REGISTER_USERNAME_MIN_LENGTH || $length > REGISTER_USERNAME_MAX_LENGTH) {
         return false;
     }
     if (!self::checkForbiddenUsernames($name)) {
         return false;
     }
     if (REGISTER_USERNAME_FORCE_ASCII) {
         if (!preg_match('/^[\\x20-\\x7E]+$/', $name)) {
             return false;
         }
     }
     return true;
 }
 /**
  * @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;
     }
 }
 /**
  * Shows the page for creating the admin account.
  */
 protected function createUser()
 {
     $errorType = $errorField = $username = $email = $confirmEmail = $password = $confirmPassword = '';
     $username = '';
     $email = $confirmEmail = '';
     $password = $confirmPassword = '';
     if (isset($_POST['send']) || self::$developerMode) {
         if (isset($_POST['send'])) {
             if (isset($_POST['username'])) {
                 $username = StringUtil::trim($_POST['username']);
             }
             if (isset($_POST['email'])) {
                 $email = StringUtil::trim($_POST['email']);
             }
             if (isset($_POST['confirmEmail'])) {
                 $confirmEmail = StringUtil::trim($_POST['confirmEmail']);
             }
             if (isset($_POST['password'])) {
                 $password = $_POST['password'];
             }
             if (isset($_POST['confirmPassword'])) {
                 $confirmPassword = $_POST['confirmPassword'];
             }
         } else {
             $username = $password = $confirmPassword = '******';
             $email = $confirmEmail = '*****@*****.**';
         }
         // error handling
         try {
             // username
             if (empty($username)) {
                 throw new UserInputException('username');
             }
             if (!UserUtil::isValidUsername($username)) {
                 throw new UserInputException('username', 'notValid');
             }
             // e-mail address
             if (empty($email)) {
                 throw new UserInputException('email');
             }
             if (!UserUtil::isValidEmail($email)) {
                 throw new UserInputException('email', 'notValid');
             }
             // confirm e-mail address
             if ($email != $confirmEmail) {
                 throw new UserInputException('confirmEmail', 'notEqual');
             }
             // password
             if (empty($password)) {
                 throw new UserInputException('password');
             }
             // confirm e-mail address
             if ($password != $confirmPassword) {
                 throw new UserInputException('confirmPassword', 'notEqual');
             }
             // no errors
             // init database connection
             $this->initDB();
             // get language id
             $languageID = 0;
             $sql = "SELECT\tlanguageID\n\t\t\t\t\tFROM\twcf" . WCF_N . "_language\n\t\t\t\t\tWHERE\tlanguageCode = '" . escapeString(self::$selectedLanguageCode) . "'";
             $row = self::getDB()->getFirstRow($sql);
             if (isset($row['languageID'])) {
                 $languageID = $row['languageID'];
             }
             // create user
             $user = UserEditor::create($username, $email, $password, array(1, 3, 4), array(), array('languageID' => $languageID), array(), false);
             // go to next step
             $this->gotoNextStep('installPackages');
             exit;
         } catch (UserInputException $e) {
             $errorField = $e->getField();
             $errorType = $e->getType();
         }
     }
     WCF::getTPL()->assign(array('errorField' => $errorField, 'errorType' => $errorType, 'username' => $username, 'email' => $email, 'confirmEmail' => $confirmEmail, 'password' => $password, 'confirmPassword' => $confirmPassword, 'nextStep' => 'createUser'));
     WCF::getTPL()->display('stepCreateUser');
 }
 /**
  * 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');
     }
 }
 /**
  * Returns true, if the given name is a valid username.
  * 
  * @param	string		$name		username
  * @return 	boolean
  */
 public static function isValidUsername($name)
 {
     $length = StringUtil::length($name);
     return UserUtil::isValidUsername($name) && $length >= REGISTER_USERNAME_MIN_LENGTH && $length <= REGISTER_USERNAME_MAX_LENGTH && self::checkForbiddenUsernames($name);
 }
 /**
  * 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);
     }
 }