Ejemplo n.º 1
0
 /**
  * Creates the domain
  * 
  * @global type $err
  * @param type $domainData
  * @param Console_CommandLine_Result $commandLineResult
  * @return int domain_id
  * @throws Exception
  */
 function createDomain($domainData, $commandLineResult)
 {
     global $err;
     global $cuid;
     // Retrieves command line options
     $options = $commandLineResult->options;
     // Retrieve forced uid if exists
     $force_uid = (int) $options["force_uid"];
     if ($force_uid) {
         $this->giveQuota(array("cuid" => $force_uid, "type" => "dom"));
     }
     // Retrieve domain
     $domain = $domainData["domaine"];
     $dns = $domainData["gesdns"];
     $dns_action = $domainData["dns_action"];
     $dns_result = $domainData["dns_result"];
     $mail = $domainData["gesmx"];
     $zonettl = $domainData["zonettl"];
     $noerase = $domainData['noerase'];
     $force = true;
     $isslave = false;
     $slavedom = "";
     // Attempts to insert domain
     $this->domain->lock();
     if (!$this->domain->add_domain($domain, $dns, $noerase, $force, $isslave, $slavedom)) {
         throw new Exception("Failed to create {$domain} : " . $err->errstr());
     }
     // Retrieve new domain id
     $query = "SELECT id FROM domaines WHERE domaine='{$domain}'";
     $result = current($this->query($query));
     $domain_id = (int) $result['id'];
     if (!$domain_id) {
         throw new Exception("Failed to retrieve domain_id for {$domain} ");
     }
     // Attempts to insert subdomains
     $subdomainsList = $domainData["sub_domains"];
     $subdomainsErrorList = array();
     foreach ($subdomainsList as $subdomainData) {
         $compte = $subdomainData["compte"];
         $domain = $subdomainData["domaine"];
         $sub = $subdomainData["sub"];
         $dest = $subdomainData["valeur"];
         $type = $subdomainData["type"];
         $web_action = $subdomainData["web_action"];
         $web_result = $subdomainData["web_result"];
         $enable = $subdomainData["enable"];
         if (!array_key_exists($type, $this->domainesTypeCache)) {
             $valid = $this->domain->domains_type_target_values($type);
             $this->domainesTypeCache[$type] = $valid;
         }
         if (!$this->domainesTypeCache[$type]) {
             $subdomainsErrorList[] = "Type '{$type}' is invalid ({$sub}.{$domain})";
             continue;
         }
         if (!$this->domain->set_sub_domain($domain, $sub, $type, $dest)) {
             $subdomainsErrorList[] = "Failed to create {$sub}.{$domain} : " . $err->errstr();
         }
     }
     if (count($subdomainsErrorList)) {
         return array("code" => 1, "message" => "Errors with subdomains : " . implode(" / ", $subdomainsErrorList));
     }
     return array("code" => 0, "message" => "ok", "domain_id" => $domain_id);
 }