Esempio n. 1
0
 /**
  *	Method enable or disable domain
  *
  *	@param bool  $enable	if true, function enable domain, otherwise disable it
  *	@return bool			return TRUE on success, FALSE on failure
  */
 function enable_domain($enable)
 {
     global $data;
     $data->add_method('enable_domain');
     $data->add_method('reload_domains');
     $errors = array();
     FileJournal::clear();
     if ($enable) {
         $opt['did'] = $this->did;
         $opt['disable'] = false;
         if (false === $this->create_or_remove_all_symlinks(true, $errors)) {
             FileJournal::rollback();
             ErrorHandler::add_error($errors);
             return false;
         }
     } else {
         $opt['did'] = $this->did;
         $opt['disable'] = true;
         if (false === $this->create_or_remove_all_symlinks(false, $errors)) {
             FileJournal::rollback();
             ErrorHandler::add_error($errors);
             return false;
         }
     }
     if (false === $data->enable_domain($opt)) {
         FileJournal::rollback();
         return false;
     }
     /* notify SER to reload domains */
     if (false === $data->reload_domains(null, $errors)) {
         ErrorHandler::add_error($errors);
         return false;
     }
     return true;
 }
Esempio n. 2
0
 function update_domain($domainname, $customer, &$errors)
 {
     global $data;
     $sem = new Shm_Semaphore(__FILE__, "s", 1, 0600);
     if (false === $data->transaction_start()) {
         return false;
     }
     FileJournal::clear();
     /* set semaphore to be sure there will not be generated same domain id for two domains */
     if (!$sem->acquire()) {
         $data->transaction_rollback();
         return false;
     }
     if (false === $this->generate_domain_id($domainname, $errors)) {
         return false;
     }
     if (!empty($domainname)) {
         if (false === DomainManipulator::add_alias($this->id, $domainname, null)) {
             FileJournal::rollback();
             $data->transaction_rollback();
             $this->revert_domain_id();
             $sem->release();
             return false;
         }
     }
     $a_vals = array("owner_id" => $customer, "alias" => $domainname);
     if (false === DomainManipulator::update_domain_attrs($this->id, $a_vals)) {
         FileJournal::rollback();
         $data->transaction_rollback();
         $this->revert_domain_id();
         $sem->release();
         return false;
     }
     if (false === $data->transaction_commit()) {
         return false;
     }
     $sem->release();
     return true;
 }