/** * Validates the file subject. */ protected function validateFileSubject() { if (empty($this->fileSubject)) { throw new UserInputException('fileSubject'); } if (mb_strlen($this->fileSubject) > 255) { $this->fileSubject = mb_substr($this->fileSubject, 0, 255); } // search for censored words if (ENABLE_CENSORSHIP) { $result = Censorship::getInstance()->test($this->fileSubject); if ($result) { WCF::getTPL()->assign('censoredWords', $result); throw new UserInputException('fileSubject', 'censoredWordsFound'); } } }
/** * @see \wcf\form\IForm::validate() */ public function validate() { parent::validate(); $this->validateUsername(); // validate category ids if (empty($this->categoryIDs)) { throw new UserInputException('categoryIDs'); } foreach ($this->categoryIDs as $categoryID) { $category = CategoryHandler::getInstance()->getCategory($categoryID); if ($category === null) { throw new UserInputException('categoryIDs'); } $category = new LinklistCategory($category); if (!$category->isAccessible() || !$category->getPermission('canUseCategory')) { throw new UserInputException('categoryIDs'); } } // validate teaser if (empty($this->teaser)) { throw new UserInputException('teaser'); } if (mb_strlen($this->teaser) > LINKLIST_MAX_TEASER_LENGTH) { throw new UserInputException('teaser', 'tooLong'); } // search for censored words if (ENABLE_CENSORSHIP) { $result = Censorship::getInstance()->test($this->teaser); if ($result) { WCF::getTPL()->assign('censoredWords', $result); throw new UserInputException('teaser', 'censoredWordsFound'); } } // validate website if (empty($this->website)) { throw new UserInputException('website'); } if (!empty($this->website)) { if (!preg_match('~^(https?|ftps?)://~', $this->website)) { $this->website = 'http://' . $this->website; } if (filter_var($this->website, FILTER_VALIDATE_URL) === false) { throw new UserInputException('website', 'invalid'); } } }