/** * @see \wcf\system\option\OptionHandler::validateOption() */ protected function validateOption(Option $option) { parent::validateOption($option); if ($option->required && $option->optionType != 'boolean' && empty($this->optionValues[$option->optionName])) { throw new UserInputException($option->optionName); } if (REGISTER_MIN_USER_AGE) { if ($this->inRegistration && $option->optionName == 'birthday') { if (empty($this->optionValues[$option->optionName])) { throw new UserInputException($option->optionName); } if (DateUtil::getAge($this->optionValues[$option->optionName]) < REGISTER_MIN_USER_AGE) { throw new UserInputException($option->optionName, 'birthdayTooYoung'); } } } }
/** * @see \wcf\system\option\OptionHandler::validateOption() */ protected function validateOption(Option $option) { parent::validateOption($option); if (!$this->isAdmin()) { // get type object $typeObj = $this->getTypeObject($option->optionType); if ($typeObj->compare($this->optionValues[$option->optionName], WCF::getSession()->getPermission($option->optionName)) == 1) { throw new UserInputException($option->optionName, 'exceedsOwnPermission'); } } else { if ($option->optionName == 'admin.user.accessibleGroups' && $this->group !== null && $this->group->isAdminGroup()) { $hasOtherAdminGroup = false; foreach (UserGroup::getGroupsByType() as $userGroup) { if ($userGroup->groupID != $this->group->groupID && $userGroup->isAdminGroup()) { $hasOtherAdminGroup = true; break; } } // prevent users from dropping their own admin state if (!$hasOtherAdminGroup) { // get type object $typeObj = $this->getTypeObject($option->optionType); if ($typeObj->compare($this->optionValues[$option->optionName], WCF::getSession()->getPermission($option->optionName)) == -1) { throw new UserInputException($option->optionName, 'cannotDropPrivileges'); } } } } }
/** * @see wcf\system\option\OptionHandler::validateOption() */ protected function validateOption(Option $option) { parent::validateOption($option); if ($option->required && empty($this->optionValues[$option->optionName])) { throw new UserInputException($option->optionName); } }