From e1ceb050e19c7574bca146a8da7047ee4ff456b5 Mon Sep 17 00:00:00 2001 From: Marius Burkard <m.burkard@pixcept.de> Date: Sun, 10 Jul 2016 05:02:35 -0400 Subject: [PATCH] Merge branch 'stable-3.1' --- interface/web/sites/ajax_get_json.php | 222 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 201 insertions(+), 21 deletions(-) diff --git a/interface/web/sites/ajax_get_json.php b/interface/web/sites/ajax_get_json.php index ebaa9f7..c115b17 100644 --- a/interface/web/sites/ajax_get_json.php +++ b/interface/web/sites/ajax_get_json.php @@ -28,39 +28,219 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('sites'); -$server_id = intval($_GET["server_id"]); -$web_id = intval($_GET["web_id"]); +$app->uses('getconf,tform'); + +$server_id = $app->functions->intval($_GET["server_id"]); +$web_id = $app->functions->intval($_GET["web_id"]); +$php_type = $_GET["php_type"]; +$client_group_id = $app->functions->intval($_GET['client_group_id']); $type = $_GET["type"]; //if($_SESSION["s"]["user"]["typ"] == 'admin') { - if($type == 'getservertype'){ - $json = '{"servertype":"'; - $server_type = 'apache'; - $app->uses('getconf'); - $web_config = $app->getconf->get_server_config($server_id, 'web'); - if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; - $json .= $server_type; - unset($webconfig); - $json .= '"}'; +if($type == 'getservertype'){ + $json = '{"servertype":"'; + $server_type = 'apache'; + $web_config = $app->getconf->get_server_config($server_id, 'web'); + if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; + $json .= $server_type; + unset($webconfig); + $json .= '"}'; +} + +if($type == 'getserverid'){ + $json = '{"serverid":"'; + $sql = "SELECT server_id FROM web_domain WHERE domain_id = ? AND ".$app->tform->getAuthSQL('r'); + $server = $app->db->queryOneRecord($sql, $web_id); + $json .= $server['server_id']; + unset($server); + $json .= '"}'; +} + +if($type == 'getphpfastcgi'){ + $json = '{'; + + $server_type = 'apache'; + $web_config = $app->getconf->get_server_config($server_id, 'web'); + if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; + if($server_type == 'nginx' && $php_type == 'fast-cgi') $php_type = 'php-fpm'; + $sql_where = ''; + + //* Client: If the logged in user is not admin and has no sub clients (no reseller) + if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $sql_where = " AND (client_id = 0 OR client_id = ".$app->functions->intval($_SESSION["s"]["user"]["client_id"]) . ")"; + //* Reseller: If the logged in user is not admin and has sub clients (is a reseller) + } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = ?", $client_group_id); + //$sql_where = " AND (client_id = 0 OR client_id = ".$_SESSION["s"]["user"]["client_id"]; + $sql_where = " AND (client_id = 0"; + if($app->functions->intval($client['client_id']) > 0) $sql_where .= " OR client_id = ".$app->functions->intval($client['client_id']); + $sql_where .= ")"; + //* Admin: If the logged in user is admin + } else { + //$sql_where = ''; + $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = ?", $client_group_id); + //$sql_where = " AND (client_id = 0 OR client_id = ".$_SESSION["s"]["user"]["client_id"]; + $sql_where = " AND (client_id = 0"; + if($app->functions->intval($client['client_id']) > 0) $sql_where .= " OR client_id = ".$app->functions->intval($client['client_id']); + $sql_where .= ")"; } + + if($php_type == 'php-fpm' || ($php_type == 'hhvm' && $server_type == 'nginx')){ + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ?".$sql_where, $server_id); + } elseif($php_type == 'fast-cgi'){ + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ?".$sql_where, $server_id); + } + $php_select = ""; + if(is_array($php_records) && !empty($php_records)) { + foreach( $php_records as $php_record) { + if($php_type == 'php-fpm' || ($php_type == 'hhvm' && $server_type == 'nginx')){ + $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; + } else { + $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + } + $json .= '"'.$php_version.'": "'.$php_record['name'].'",'; + } + } + unset($php_records); + if(substr($json, -1) == ',') $json = substr($json, 0, -1); + $json .= '}'; +} + +if($type == 'getphptype'){ + $json = '{"phptype":"'; + $sql = "SELECT php FROM web_domain WHERE domain_id = ? AND ".$app->tform->getAuthSQL('r'); + $php = $app->db->queryOneRecord($sql, $web_id); + $json .= $php['php']; + unset($php); + $json .= '"}'; +} + +if($type == 'getredirecttype'){ + $json = '{"redirecttype":"'; + $sql = "SELECT redirect_type FROM web_domain WHERE domain_id = ? AND ".$app->tform->getAuthSQL('r'); + $redirect = $app->db->queryOneRecord($sql, $web_id); + $json .= $redirect['redirect_type']; + unset($redirect); + $json .= '"}'; +} + +if($type == 'get_ipv4'){ + $result = array(); + + // ipv4 + //$result[] = _search('admin', 'server_ip', "AND ip_type = 'IPv4' AND (client_id = 0 OR client_id=".$app->functions->intval($_SESSION['s']['user']['client_id']).")"); + $result[] = $app->functions->suggest_ips('IPv4'); + + $json = $app->functions->json_encode($result); +} + +if($type == 'get_ipv6'){ + $result = array(); + + // ipv6 + //$result[] = _search('admin', 'server_ip', "AND ip_type = 'IPv6' AND (client_id = 0 OR client_id=".$app->functions->intval($_SESSION['s']['user']['client_id']).")"); + $result[] = $app->functions->suggest_ips('IPv6'); + + $json = $app->functions->json_encode($result); +} + +if($type == 'getdatabaseusers') { + $json = '{}'; + + $sql = "SELECT sys_groupid FROM web_domain WHERE domain_id = ? AND ".$app->tform->getAuthSQL('r'); + $group = $app->db->queryOneRecord($sql, $web_id); + if($group) { + $sql = "SELECT database_user_id, database_user FROM web_database_user WHERE sys_groupid = ?"; + $records = $app->db->queryAllRecords($sql, $group['sys_groupid']); + + $tmp_array = array(); + foreach($records as $record) { + $tmp_array[$record['database_user_id']] = $record['database_user']; + } + $json = $app->functions->json_encode($tmp_array); + unset($records, $group, $tmp_array); + } +} + +if($type == 'get_use_combobox'){ + $json = '{"usecombobox":"'; + $use_combobox = 'y'; + $server_config_array = $app->getconf->get_global_config(); + if($server_config_array['misc']['use_combobox'] != 'y') $use_combobox = 'n'; + $json .= $use_combobox; + unset($server_config_array); + $json .= '"}'; +} + +if($type == 'get_use_loadindicator'){ + $json = '{"useloadindicator":"'; + $use_loadindicator = 'y'; + $server_config_array = $app->getconf->get_global_config(); + if($server_config_array['misc']['use_loadindicator'] != 'y') $use_loadindicator = 'n'; + $json .= $use_loadindicator; + unset($server_config_array); + $json .= '"}'; +} + +if ($type == 'getdirectivesnippet') { + $server_type = 'apache'; + $web_config = $app->getconf->get_server_config($server_id, 'web'); + if (!empty($web_config['server_type'])) $server_type = $web_config['server_type']; + + $m_snippets = $app->db->queryAllRecords("SELECT directive_snippets_id, name FROM directive_snippets WHERE customer_viewable = 'y' AND active = 'y' AND master_directive_snippets_id > 0 AND type = ? ORDER BY name ASC", $server_type); - if($type == 'getserverid'){ - $json = '{"serverid":"'; - $sql = "SELECT server_id FROM web_domain WHERE domain_id = $web_id"; - $server = $app->db->queryOneRecord($sql); - $json .= $server['server_id']; - unset($server); - $json .= '"}'; + $snippets = $app->db->queryAllRecords("SELECT directive_snippets_id, name FROM directive_snippets WHERE customer_viewable = 'y' AND active = 'y' AND master_directive_snippets_id = 0 AND type = ? ORDER BY name ASC", $server_type); + + $json = json_encode(array('m_snippets' => $m_snippets, 'snippets' => $snippets)); +} + +if($type == 'getclientssldata'){ + $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $web_id); + $sys_group = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE groupid = ?", $web['sys_groupid']); + $client = $app->db->queryOneRecord("SELECT * FROM client WHERE client_id = ?", $sys_group['client_id']); + if(is_array($client) && !empty($client)){ + if($client['telephone'] == '' && $client['mobile'] != '') $client['telephone'] = $client['mobile']; + + $fname = ''; + $lname = ''; + $parts = preg_split("/\s+/", $client['contact_name']); + if(sizeof($parts) == 2){ + $fname = $parts[0]; + $lname = $parts[1]; + } + if(sizeof($parts) > 2){ + $fname = $parts[0].' '; + for($i=1;$i<sizeof($parts);$i++){ + if($i == (sizeof($parts) - 1)){ + $lname .= $parts[$i]; + } else { + if(preg_match('@^(von|van|ten|ter|zur|zu|auf|sieber)$@i', $parts[$i])){ + $lname .= implode(' ', array_slice($parts, $i)); + break; + } else { + $fname .= $parts[$i].' '; + } + } + } + } + $fname = trim($fname); + $lname = trim($lname); + $client['fname'] = $fname; + $client['lname'] = $lname; + if(trim($client['company_name']) == '') $client['company_name'] = $fname.' '.$lname; } + $json = $app->functions->json_encode($client); +} //} +header('Content-type: application/json'); echo $json; -?> \ No newline at end of file +?> -- Gitblit v1.9.1