Пример #1
0
 /**
  * check if domain is not taken or is creatable
  */
 private function checkDomain()
 {
     global $wgUser;
     $status = 0;
     wfProfileIn(__METHOD__);
     if (strlen($this->mDomain) === 0) {
         // empty field
         $status = self::ERROR_DOMAIN_IS_EMPTY;
     } elseif (strlen($this->mDomain) < 3) {
         // too short
         $status = self::ERROR_DOMAIN_TOO_SHORT;
     } elseif (strlen($this->mDomain) > 50) {
         // too long
         $status = self::ERROR_DOMAIN_TOO_LONG;
     } elseif (preg_match('/[^a-z0-9-]/i', $this->mDomain)) {
         // invalid name
         $status = self::ERROR_DOMAIN_BAD_NAME;
     } elseif (in_array($this->mDomain, array_keys(Language::getLanguageNames()))) {
         // invalid name (name is used language)
         $status = self::ERROR_DOMAIN_POLICY_VIOLATIONS;
     } elseif (!$wgUser->isAllowed("staff") && AutoCreateWiki::checkBadWords($this->mDomain, "domain") === false) {
         // invalid name (bad words)
         $status = self::ERROR_DOMAIN_POLICY_VIOLATIONS;
     } else {
         if (AutoCreateWiki::domainExists($this->mDomain, $this->mLanguage)) {
             $status = self::ERROR_DOMAIN_NAME_TAKEN;
         }
     }
     wfProfileOut(__METHOD__);
     return $status;
 }