Пример #1
0
 private function doDomainTask($task)
 {
     if (!isset($task['Domains']) || !isset($task['Domains']['Customers']) || !isset($task['Domains']['Customers']['customer_id'])) {
         PanelsActions::UpdateTaskLog($task['action_id'], $this->translations->translate('customer_id not found'));
     }
     $customer_id = intval($task['Domains']['Customers']['customer_id']);
     $ISP = Isp::getByCustomerId($customer_id);
     if (!$ISP || !isset($ISP['isp_id']) || !is_numeric($ISP['isp_id'])) {
         PanelsActions::UpdateTaskLog($task['action_id'], $this->translations->translate('isp_id not found'));
         return false;
     }
     try {
         // Getting domains details
         $domain = Domains::find($task['domain_id'], null, true);
         if (!empty($domain[0])) {
             $domain_name = $domain[0]['domain'] . "." . $domain[0]['tld'];
             // Get the associated registrar for the domain selected
             $registrar = Registrars::getRegistrarId($task['registrars_id']);
             if (!empty($registrar['class'])) {
                 // Create the class registrar object
                 $class = $registrar['class'];
                 $regclass = new $class();
                 $action = $task['action'];
                 // Check if the task is REGISTER or TRANSFER the domain name
                 if ($action == "registerDomain") {
                     $regclass->registerDomain($task['domain_id']);
                     // Set the DNS ZONES
                     DomainsTasks::AddTask($domain_name, "setDomainHosts");
                     // Update the domain information
                     DomainsTasks::AddTask($domain_name, "updateDomain");
                 } elseif ($action == "transferDomain") {
                     $regclass->transferDomain($task['domain_id']);
                 } elseif ($action == "renewDomain") {
                     $regclass->renewDomain($task['domain_id']);
                     // Update the domain information
                     DomainsTasks::AddTask($domain_name, "updateDomain");
                 } elseif ($action == "lockDomain") {
                     $regclass->lockDomain($task['domain_id']);
                 } elseif ($action == "unlockDomain") {
                     $regclass->unlockDomain($task['domain_id']);
                     // Update the domain information
                     DomainsTasks::AddTask($domain_name, "updateDomain");
                 } elseif ($action == "setNameServers") {
                     $regclass->setNameServers($task['domain_id']);
                 } elseif ($action == "setDomainHosts") {
                     $regclass->setDomainHosts($task['domain_id']);
                 } else {
                     $regclass->{$action}($task['domain_id']);
                 }
                 // Update the log description of the task
                 DomainsTasks::UpdateTaskLog($task['task_id'], $this->translations->translate("Your request has been executed."));
                 // Update the status of the task
                 DomainsTasks::UpdateTaskStatus($task['task_id'], Statuses::id('complete', 'domains_tasks'));
                 // Set the task as "Complete"
                 // Increment the task counter number
                 DomainsTasks::UpdateTaskCounter($task['task_id']);
                 // Set the status as Active
                 Domains::setStatus($task['domain_id'], Statuses::id('active', 'domains_tasks'));
             }
         }
     } catch (Exception $e) {
         DomainsTasks::UpdateTaskLog($task['task_id'], $this->translations->translate($e->getMessage()));
         Shineisp_Commons_Utilities::SendEmail($ISP['email'], $ISP['email'], null, "Task error message: " . $task['Domains']['domain'] . "." . $task['Domains']['tld'], $e->getMessage());
         Shineisp_Commons_Utilities::logs("Task error message: " . $task['Domains']['domain'] . "." . $task['Domains']['tld'] . ":" . $e->getMessage(), "tasks.log");
     }
     return true;
 }
Пример #2
0
 /**
  * Register
  * Execute a Register task
  */
 public function registerAction()
 {
     $domainID = $this->getRequest()->getParam('id');
     $action = $this->getRequest()->getParam('do');
     // Check if the request comes from the owner of the domain
     if (!Domains::isOwner($domainID, $this->customer['customer_id'])) {
         $this->_helper->redirector('list', 'domains', 'default', array('mex' => 'A problem has been occurred during the request.', 'status' => 'danger'));
     }
     // Get the domain name
     $domain = Domains::getDomainName($domainID);
     if (empty($domain)) {
         $this->_helper->redirector('list', 'domains', 'default', array('mex' => 'A problem has been occurred during the request.', 'status' => 'danger'));
     }
     switch ($action) {
         case 'lockDomain':
             DomainsTasks::AddTask($domain, 'lockDomain');
             break;
         case 'unlockDomain':
             DomainsTasks::AddTask($domain, 'unlockDomain');
             break;
         case 'updateDomain':
             DomainsTasks::AddTask($domain, 'updateDomain');
             break;
         default:
             $this->_helper->redirector('list', 'domains', 'default', array('mex' => 'A problem has been occurred during the request.', 'status' => 'danger'));
             break;
     }
     $this->_helper->redirector('edit', 'domains', 'default', array('id' => $domainID, 'mex' => 'The task requested has been executed successfully.', 'status' => 'success'));
 }
Пример #3
0
 /**
  * Bulk registrar task request
  * @param array $items Items selected
  * @param array $parameters Custom parameters
  */
 public function bulk_registrar_tasks($items, $parameters)
 {
     $errors = array();
     if (!empty($parameters['task'])) {
         $domains = self::get_domains($items, "d.domain_id, CONCAT(d.domain, '.', ws.tld) as name, d.registrars_id as registrar", "d.domain");
         foreach ($domains as $domain) {
             if (!empty($domain['name'])) {
                 if (!empty($domain['registrar'])) {
                     DomainsTasks::AddTask($domain['name'], $parameters['task']);
                 } else {
                     $errors[] = "Registrar service not set for: " . $domain['name'];
                 }
             }
         }
     }
     if (count($errors) > 0) {
         die(json_encode(array('mex' => implode("<br/>", $errors))));
     }
     return true;
 }
Пример #4
0
 /**
  * addtask [Ajax call]
  * Add a Task for the domain selected
  * @return json array
  */
 public function addtaskAction()
 {
     // Check if it is an ajax request
     if ($this->_request->isXmlHttpRequest()) {
         // Get the parameters
         $domain_id = $this->getRequest()->getParam('id');
         $method = $this->getRequest()->getParam('method');
         // Check the parameters
         if (is_numeric($domain_id) && !empty($method)) {
             $record = $this->domains->find($domain_id, "d.domain as domain, ws.tld as tld, d.authinfocode, d.customer_id as customer_id, cdr.value as nichandle", true);
             if (is_array($record[0])) {
                 $domain = $record[0]['domain'] . "." . $record[0]['tld'];
                 $domain_id = $record[0]['domain_id'];
                 $retval = DomainsTasks::AddTask($domain, $method, $domain_id);
                 if ($retval) {
                     die(json_encode(array('result' => 1)));
                 } else {
                     die(json_encode(array('result' => 0)));
                 }
             }
         }
     }
     die(json_encode(array('result' => 0)));
 }