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; }
/** * 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')); }
/** * 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; }
/** * 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))); }