| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- <?php
- namespace MGModule\DNSManager2\controllers\addon\admin;
- use \MGModule\DNSManager2 as main;
- use \MGModule\DNSManager2\mgLibs\custom;
- use \MGModule\DNSManager2\mgLibs\custom\AjaxResponse;
- use \MGModule\DNSManager2\mgLibs\custom\dns\exceptions\DNSException;
- use \MGModule\DNSManager2\models\custom\package\server as pserver;
- use \MGModule\DNSManager2\models\custom\server;
- use \MGModule\DNSManager2\models\custom\zone;
- //use MGModule\DNSManager2\models\custom\package;
- class servers extends main\mgLibs\process\abstractController {
- private $settings_array = array('allow_rdns', 'allow_multiple_ptr', 'enable_cache');
- private $form = array(
- 'edit' => false,
- 'name' => '',
- 'module' => '',
- );
- public function indexJSON($input, $vars = array()) {
- return AjaxResponse::I()->refreshPage($this->indexHTML($input, $vars))->toArray();
- }
-
- public function indexHTML($input, $vars = array()) {
- $vars['available_submodules'] = custom\dns\Core::getAvailableSubmodules();
-
- $path = main\addon::getMainDIR() . DS . 'mgLibs' . DS . 'custom' . DS . 'cache' . DS . 'storage';
- if(!is_writable($path) || !is_readable($path)) {
- $vars['error'] = str_replace(':path:', $path, main\mgLibs\lang::T('cache_warning'));
- }
-
- return array(
- 'tpl' => 'main'
- ,'vars' => $vars
- );
- }
-
- public function refreshServersTableJSON($input, $vars = array()) {
- $rep = new server\Repository();
- $helper = new custom\RepoTableHelper($rep, $input);
- $vars = $helper->getDataTableArray();
-
- foreach($helper->get() as $server)
- $vars['data'][] = $this->dataTablesParseRow('server-row', array('server' => $server));
- return $vars;
- }
-
- public function getModuleConfigurationJSON($input, $vars = array()) {
- try {
- $vars['server']['module'] = $input['server_module'];
- $vars['server']['configuration'] = custom\CoreManager::getConfiguration($input['server_module']);
- } catch(DNSException $e) {
- AjaxResponse::I()->addError("Module {$input['server_module']} is unsupported");
- }
-
- AjaxResponse::I()->html = main\mgLibs\smarty::I()->view('module-configuration', $vars, main\addon::getModuleTemplatesDir().DS.'pages' . DS . 'servers' . DS . 'modal');
- return AjaxResponse::I()->toArray();
- }
-
- public function testConnectionJSON($input, $vars = array()) {
- try {
- custom\CoreManager::testConnection($input['server_module_test'], $input['conf']);
- AjaxResponse::I()->addInfo("connection_success");
- } catch(custom\dns\exceptions\DNSSubmoduleException $e) {
- AjaxResponse::I()->addRawError($e->getMessage());
- } catch(custom\dns\exceptions\DNSException $e) {
- AjaxResponse::I()->addError('module_is_unsupported', array(':module:' => $input['server_module']));
- }
-
- return AjaxResponse::I()->toArray();
- }
-
- public function addServerJSON($input, $vars = array()) {
- $vars['server'] = $this->form;
- $vars['available_submodules'] = custom\dns\Core::getAvailableSubmodules();
- AjaxResponse::I()->modal('server', $vars);
- return AjaxResponse::I()->toArray();
- }
-
- public function editServerJSON($input, $vars = array()) {
- $server = new server\Server($input['id']);
-
- $form = $this->form;
- $form['edit'] = true;
- $form['id'] = $server->id;
- $form['name'] = $server->name;
- $form['module'] = $server->module;
- $form['configuration'] = custom\CoreManager::getConfiguration($server->module);
- foreach($form['configuration'] as $key => &$arr) {
- $arr['value'] = $server->getModuleConfiguration($key);
- }
-
- foreach($server->getNameservers() as $nameserver) {
- $form['nameserver'][$nameserver->index] = $nameserver->toArray(false);
- }
-
- $form['setting'] = array();
- foreach($server->getSettings() as $k => $v)
- {
-
- $form['setting'][$k] = $v->value;
- }
-
- $vars['server'] = $form;
- $vars['available_submodules'] = custom\dns\Core::getAvailableSubmodules();
-
- $vars['configuration_html'] = main\mgLibs\smarty::I()->view('module-configuration',
- $vars,
- main\addon::getModuleTemplatesDir().DS.'pages' . DS . main\addon::I()->page . DS . 'modal');
-
- AjaxResponse::I()->modal('server', $vars);
- return AjaxResponse::I()->toArray();
- }
-
- public function serverSaveJSON($input, $vars = array()) {
- if(empty($input['server_module'])) {
- AjaxResponse::I()->addError('server_module_cannot_be_empty');
- return AjaxResponse::I()->toArray();
- }
-
- $server = new server\Server($input['id']?:false);
- $input['id']? '' : $server->status = 0;
- $server->module = $input['server_module'];
- $server->name = $input['name'];
- $server->save();
-
- foreach($input['ns'] as $k => $v) {
- $server->setNameserver($k, $v['name'], $v['ip']);
- }
-
- $server->setSetting(server\setting\ServerSettingEnum::MODULE_CONFIGURATION, serialize($input['conf']));
- foreach($input['setting'] as $k => $v) {
- $server->setSetting($k, $v);
- }
-
- AjaxResponse::I()->refreshPage($this->indexHTML($input, $vars));
- if($input['id']) {
- AjaxResponse::I()->addInfo('changes_saved');
- } else {
- AjaxResponse::I()->addInfo('new_server_added');
- }
-
- return AjaxResponse::I()->toArray();
- }
- public function deleteServerJSON($input, $vars = array()) {
- $server = new server\Server($input['id']);
-
- if(pserver\Repository::factory()->byServerID($server->id)->count() > 0) {
- return AjaxResponse::I()->addError('this_server_is_already_in_use_by_some_packages')->toArray();
- }
-
- if(zone\Repository::factory()->byServerID($server->id)->count() > 0) {
- return AjaxResponse::I()->addError('there_are_zones_on_this_server')->toArray();
- }
- $server->delete();
-
- AjaxResponse::I()->addInfo('server_removed');
- return AjaxResponse::I()->toArray();
- }
-
- public function turnOnServerJSON($input, $vars = array()) {
- server\Server::factory($input['id'])->turnOn();
- AjaxResponse::I()->addInfo('server_turned_on');
- return AjaxResponse::I()->toArray();
- }
-
- public function turnOffServerJSON($input, $vars = array()) {
- server\Server::factory($input['id'])->turnOff();
-
- AjaxResponse::I()->addInfo('server_turned_off');
- return AjaxResponse::I()->toArray();
- }
- }
|