function list_items() { $STATUS = unserialize(@file_get_contents("/usr/share/artica-postfix/ressources/logs/web/nginx.status.acl")); $tpl = new templates(); $MyPage = CurrentPageName(); $all_text = $tpl->_ENGINE_parse_body("{all}"); $GLOBALS["CLASS_TPL"] = $tpl; $q = new mysql_squid_builder(); $OrgPage = "miniadmin.proxy.reverse.php"; $sock = new sockets(); $EnableFreeWeb = intval($sock->GET_INFO("EnableFreeWeb")); if (!$q->FIELD_EXISTS("reverse_www", "zOrder")) { $q->QUERY_SQL("ALTER TABLE `reverse_www` ADD `zOrder` smallint(100) NOT NULL default '0'"); if (!$q->ok) { echo $q->mysql_error_html(); } } $up = imgsimple("arrow-up-32.png", null, "Loadjs('{$MyPage}?move-item-js=yes&ID={$ligne["ID"]}&dir=0&t={$_GET["t"]}')"); $down = imgsimple("arrow-down-32.png", null, "Loadjs('{$MyPage}?move-item-js=yes&ID={$ligne["ID"]}&dir=1&t={$_GET["t"]}')"); $FORCE = "cache_peer_id={$_GET["ID"]}"; $search = '%'; $table = "reverse_www"; $page = 1; $freeweb_compile_background = $tpl->javascript_parse_text("{freeweb_compile_background}"); $reset_admin_password = $tpl->javascript_parse_text("{reset_admin_password}"); $delete_freeweb_text = $tpl->javascript_parse_text("{delete_freeweb_text}"); $delete_freeweb_nginx_text = $tpl->javascript_parse_text("{delete_freeweb_nginx_text}"); $delete_freeweb_dnstext = $tpl->javascript_parse_text("{delete_freeweb_dnstext}"); $total = 0; if ($q->COUNT_ROWS($table, "artica_backup") == 0) { json_error_show("no data", 1); } if (isset($_POST["sortname"])) { if ($_POST["sortname"] != null) { $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}"; } } if (isset($_POST['page'])) { $page = $_POST['page']; } $searchstring = string_to_flexquery(); if ($searchstring != null) { $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE {$FORCE} {$searchstring}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_events")); $total = $ligne["TCOUNT"]; } else { if (strlen($FORCE) > 2) { $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE {$FORCE}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_events")); $total = $ligne["TCOUNT"]; } else { $total = $q->COUNT_ROWS($table, "artica_events"); } } if (isset($_POST['rp'])) { $rp = $_POST['rp']; } if (!is_numeric($rp)) { $rp = 50; } $pageStart = ($page - 1) * $rp; $limitSql = "LIMIT {$pageStart}, {$rp}"; $sql = "SELECT * FROM `{$table}` WHERE {$FORCE} {$searchstring} {$ORDER} {$limitSql}"; writelogs($sql, __FUNCTION__, __FILE__, __LINE__); $results = $q->QUERY_SQL($sql, "artica_events"); if (!$q->ok) { json_error_show($q->mysql_error . "<br>{$sql}", 1); } $data = array(); $data['page'] = $page; $data['total'] = $total; $data['rows'] = array(); $CurrentPage = CurrentPageName(); if (mysql_num_rows($results) == 0) { json_error_show("no data"); } $searchstring = string_to_flexquery(); if (!AdminPrivs()) { $sql = "SELECT reverse_www.* FROM reverse_www,reverse_privs\n\t\tWHERE reverse_privs.servername=reverse_www.servername\n\t\tAND reverse_privs.uid='{$_SESSION["uid"]}' {$searchstring} ORDER BY servername LIMIT 0,250"; } $results = $q->QUERY_SQL($sql, 'artica_backup'); if (!$q->ok) { json_error_show($q->mysql_error . "<br>{$sql}"); } $q1 = new mysql(); $t = time(); while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) { $servername = $ligne["servername"]; $explain_text = NGINX_EXPLAIN_REVERSE($ligne["servername"]); $icon = "clound-in-64.png"; $freewebicon = "64-firewall-search.png"; $color = "black"; $status = array(); $portText = null; $md = md5(serialize($ligne)); $RedirectQueries = $ligne["RedirectQueries"]; $default_server = $ligne["default_server"]; $SiteEnabled = $ligne["enabled"]; $servername_enc = urlencode($servername); $Compile = imgsimple("apply-48.png", null, "Loadjs('nginx.single.progress.php?servername={$servername_enc}')"); $limit_rate = $ligne["limit_rate"]; $limit_rate_after = $ligne["limit_rate_after"]; $DeleteFreeWeb = "Loadjs('{$MyPage}?unlink-websites-js=yes&servername={$servername_enc}&md={$md}')"; $icon2 = imgsimple("reconfigure-48.png", null, "Loadjs('miniadmin.proxy.reverse.reconfigure.php?servername={$servername_enc}')"); $up = imgsimple("arrow-up-32.png", null, "Loadjs('{$MyPage}?move-item-js=yes&servername={$servername_enc}&dir=0&t={$_GET["t"]}')"); $down = imgsimple("arrow-down-32.png", null, "Loadjs('{$MyPage}?move-item-js=yes&servername={$servername_enc}&dir=1&t={$_GET["t"]}')"); if ($ligne["DenyConf"] == 1) { $icon = "hearth-blocked-64.png"; } if ($SiteEnabled == 0) { $icon = "domain-main-64-grey.png"; $color = "#8a8a8a"; $icon2 = " "; } $delete = imgsimple("delete-48.png", null, $DeleteFreeWeb); $jsedit = imgsimple($icon, null, "Loadjs('nginx.site.php?servername={$servername_enc}')"); $jsEditWW = $jsedit; $jseditA = $jsedit; $jseditC = imgsimple("script-48.png", null, "Loadjs('nginx.script.php?website-script-js=yes&servername={$servername_enc}')"); if ($limit_rate > 0) { $limit_rate_after_caption = $tpl->_ENGINE_parse_body("{limit_rate_after_caption}"); $limit_rate_after_caption = str_replace("%s", "{$limit_rate}MB/s", $limit_rate_after_caption); $limit_rate_after_caption = str_replace("%f", "{$limit_rate_after}MB", $limit_rate_after_caption); $status[] = "<br><span style='font-size:12px;font-weight:bold;color:#EEB853'>{$limit_rate_after_caption}</span>"; } if (count($status) > 0) { $status_text = $tpl->_ENGINE_parse_body("<div style='font-size:12px'>" . @implode("", $status) . "</div>"); } $FreeWebText = null; if ($EnableFreeWeb == 0) { if ($ligne["ipaddr"] == "127.0.0.1") { $ligne["ipaddr"] = "{error}"; } if ($ligne["cache_peer_id"] == 0) { $ligne["cache_peer_id"] = -1; } } if ($ligne["owa"] == 1) { $freewebicon = "exchange-2010-64.png"; } if ($ligne["poolid"] > 0) { $freewebicon = "64-cluster.png"; $ligne2 = mysql_fetch_array($q->QUERY_SQL("SELECT poolname FROM nginx_pools WHERE ID='{$ligne["poolid"]}'")); $ligne["ipaddr"] = $ligne2["poolname"]; } $stats = null; $FinalDestination = "{$ligne["ipaddr"]}{$FreeWebText}"; if ($default_server == 1) { $servername = "{$servername} ({$all_text} * )"; $icon = "free-web-64.png"; if ($SiteEnabled == 0) { $icon = "free-web-64-grey.png"; } } $data['rows'][] = array('id' => $ligne['categorykey'], 'cell' => array("{$jseditC}", "<a href=\"javascript:blur();\"\n\t\t\t\t\t\t\tstyle='font-size:18px;font-weight:bold;text-decoration:underline'\n\t\t\t\t\t\t\tOnClick=\"javascript:Loadjs('nginx.site.php?servername={$servername_enc}')\">{$servername}{$portText}</a>\n\t\t\t\t\t\t\t<br>{$status_text}\n\t\t\t\t\t\t\t{$explain_text}", $Compile, $delete)); } echo json_encode($data); }
function main() { $tpl = new templates(); $page = CurrentPageName(); $servername = $_GET["servername"]; $rv = new squid_reverse(); $q = new mysql_squid_builder(); $sock = new sockets(); $title = "{new_webserver}"; $bt = "{add}"; $t = time(); FORM_START(); $q = new mysql_squid_builder(); $squid_reverse = new squid_reverse(); $tpl = new templates(); $sslcertificates = $squid_reverse->ssl_certificates_list(); $sources_list = $squid_reverse->sources_list(); $array = $sources_list[0]; $array2 = $sources_list[1]; $CountDeSources = $sources_list[2]; $nginx_caches = $squid_reverse->caches_list(); $nginx_pools = $squid_reverse->pool_list(); $nginx_replaces = $squid_reverse->replace_list(); $AsFReeWeb = false; $EnableFreeWeb = $sock->GET_INFO("EnableFreeWeb"); if ($servername != null) { $ligne = mysql_fetch_array($q->QUERY_SQL("SELECT * FROM reverse_www WHERE servername='{$servername}'")); $title = $tpl->_ENGINE_parse_body("{port}:{$ligne["port"]} «{$servername}»"); $bt = "{apply}"; $Hidden = Field_hidden("servername-edit-{$t}", $servername) . $servername; } else { $ligne["enabled"] = 1; $Hidden = Field_text("servername-edit-{$t}", null, "font-size:18px;width:300px"); FORM_CLOSE("YahooWin"); } if (!is_numeric($ligne["port"])) { $ligne["port"] = 80; } if (!is_numeric($ligne["ArticaErrors"])) { $ligne["ArticaErrors"] = 1; } if ($servername == null) { $ligne["cache_peer_id"] = -1; } if (!is_numeric($EnableFreeWeb)) { $EnableFreeWeb = 0; } if ($ligne["cache_peer_id"] == 0) { if ($EnableFreeWeb == 1) { $q2 = new mysql(); $ligne2 = mysql_fetch_array($q2->QUERY_SQL("SELECT `useSSL`,`sslcertificate` FROM `freeweb` WHERE `servername`='{$servername}'", "artica_backup")); $ligne["certificate"] = $ligne2["sslcertificate"]; $AsFReeWeb = true; $title = $tpl->_ENGINE_parse_body("FreeWeb «{$servername}»"); } else { $ligne["cache_peer_id"] = -1; } } $html[] = "<div style='width:98%' class=form>"; $html[] = "<table style='width:100%'>"; $html[] = "<tr><td colspan=2 style='font-size:22px'>{reverse_proxy}:</td></tr>"; $html[] = "<tr><td class=legend style='font-size:18px'>{webserver}:</td>"; $html[] = "<td style='font-size:18px'>{$Hidden}</td></tr>"; $html[] = Field_checkbox_table("owa-{$t}", "{protect_owa}", $ligne["owa"], 18); $html[] = Field_checkbox_table("debug-{$t}", "{debug}", $ligne["debug"], 18); $html[] = Field_list_table("cacheid-{$t}", "{cache}", $ligne["cacheid"], 18, $nginx_caches); $html[] = Field_list_table("replaceid-{$t}", "{replace_rule}", $ligne["replaceid"], 18, $nginx_replaces); if ($ligne["cache_peer_id"] == 0) { $html[] = Field_hidden("cache_peer_id-{$t}", 0); $html[] = Field_hidden("enabled-{$t}", 1); $html[] = Field_hidden("certificate-{$t}", $ligne["certificate"]); } else { if (!AdminPrivs()) { $html[] = Field_hidden("cache_peer_id-{$t}", $ligne["cache_peer_id"]); $html[] = Field_hidden("start_directory-{$t}", $ligne["start_directory"]); } else { $html[] = Field_list_table("cache_peer_id-{$t}", "{destination}", $ligne["cache_peer_id"], 18, $array); $html[] = Field_text_table("start_directory-{$t}", "{start_path}", $ligne["start_directory"], 18, null, 300); } $html[] = Field_list_table("poolid-{$t}", "{pool}", $ligne["poolid"], 18, $nginx_pools); $html[] = Field_text_table("RedirectQueries-{$t}", "{RedirectQueries}", $ligne["RedirectQueries"], 18, null, 300); $html[] = Field_checkbox_table("ArticaErrors-{$t}", "{enable_template_errors}", $ligne["ArticaErrors"], 18); if ($CountDeSources == 0) { $html[] = "<tr><td colspan=2><p class=text-error>{you_need_to_define_sources_first}</p></td></tr>"; FORM_LOCK(); } } $html[] = Field_button_table($bt); echo $tpl->_ENGINE_parse_body(FORM_END(CurrentPageName(), $html)); }
function sources_search() { $AdminPrivs = AdminPrivs(); $prox = new squid_reverse(); $searchstring = string_to_flexquery("sources-search"); $q = new mysql_squid_builder(); $sql = "SELECT * FROM reverse_sources WHERE 1 {$searchstring} ORDER BY servername LIMIT 0,250"; if (!$AdminPrivs) { $sql = "SELECT reverse_sources.* FROM reverse_sources,reverse_privs\n\t\tWHERE reverse_privs.sourceid=reverse_sources.ID\n\t\tAND reverse_privs.uid='{$_SESSION["uid"]}' {$searchstring} ORDER BY servername LIMIT 0,250"; } $results = $q->QUERY_SQL($sql, 'artica_backup'); $tpl = new templates(); $GLOBALS["CLASS_TPL"] = $tpl; $boot = new boostrap_form(); $page = CurrentPageName(); $t = time(); while ($ligne = mysql_fetch_array($results, MYSQL_ASSOC)) { $icon = "64-idisk-server.png"; $icon_failed = "64-idisk-server-grey.png"; $icon2 = "folder-network-64.png"; $icon2_failed = "folder-network-64-grey.png"; $isSuccessIcon = "none-20.png"; $isSuccessIcon_failed = "check-32-grey.png"; $isSuccessIcon_success = "check-32.png"; $isSuccessLink = null; if ($ligne["OnlyTCP"] == 1) { $icon = "folder-network-64.png"; $icon_failed = "folder-network-64-grey.png"; } $color = "black"; $md = md5(serialize($ligne)); if ($ligne["enabled"] == 0) { $icon = $icon_failed; $icon2 = $icon2_failed; $color = "#8a8a8a"; } $servername = $ligne["servername"]; $delete = imgsimple("delete-48.png", null, "Delete{$t}('{$ligne["ID"]}','{$md}')"); $jsedit = $boot->trswitch($js_edit); if ($ligne["ipaddr"] == "127.0.0.1") { $delete = " "; } $isSuccess = $ligne["isSuccess"]; if (!$AdminPrivs) { $delete = " "; } $jsedit = $boot->trswitch("Loadjs('{$page}?js-source=yes&source-id={$ligne["ID"]}')"); $isSuccesstxt = unserialize(base64_decode($ligne["isSuccesstxt"])); if (count($isSuccesstxt) > 1) { $isSuccessLink = $boot->trswitch("Loadjs('{$page}?js-source-tests={$ligne["ID"]}')"); $isSuccessIcon = $isSuccessIcon_success; if ($isSuccess == 0) { $isSuccessIcon = $isSuccessIcon_failed; $color = "#C40000"; } } $tr[] = "\n\t\t<tr style='color:{$color}' id='{$md}'>\n\t\t\t<td width=1% nowrap {$jsedit} style='vertical-align:middle'><img src='img/{$icon}'></td>\n\t\t\t<td width=80% {$jsedit} style='vertical-align:middle'><span style='font-size:18px;font-weight:bold'>{$servername}</span></td>\n\t\t\t<td width=1% nowrap style='vertical-align:middle' {$isSuccessLink}><img src='img/{$isSuccessIcon}'></td>\n\t\t\t<td width=1% nowrap {$jsedit} style='vertical-align:middle'><img src='img/{$icon2}'></td>\n\t\t\t<td width=1% nowrap {$jsedit} style='vertical-align:middle'><span style='font-size:18px;font-weight:bold'>{$ligne["ipaddr"]}:{$ligne["port"]}</span></td>\n\t\t\t<td width=1% nowrap style='vertical-align:middle'>{$delete}</td>\n\t\t</tr>\n\t\t"; } $t = time(); $page = CurrentPageName(); $freeweb_compile_background = $tpl->javascript_parse_text("{freeweb_compile_background}"); $reset_admin_password = $tpl->javascript_parse_text("{reset_admin_password}"); $delete_freeweb_text = $tpl->javascript_parse_text("{delete_freeweb_text}"); $delete_freeweb_dnstext = $tpl->javascript_parse_text("{delete_freeweb_dnstext}"); echo $tpl->_ENGINE_parse_body("\n\n\t\t\t<table class='table table-bordered table-hover'>\n\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan=2>{servers}</th>\n\t\t\t\t\t<th>Tests</th>\n\t\t\t\t\t<th colspan=2>{address}</th>\n\t\t\t\t\t<th> </th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t <tbody>") . @implode("", $tr) . "</tbody></table>\n<script>\nvar FreeWebIDMEM{$t}='';\n\n\nfunction ApacheAllstatus(){\nLoadjs('freeweb.status.php');\n}\n\n\nfunction FreeWebWebDavPerUsers(){\nLoadjs('freeweb.webdavusr.php?t={$t}')\n}\n\nfunction RestoreSite(){\nLoadjs('freeweb.restoresite.php?t={$t}')\n}\n\nfunction FreeWebsRefreshWebServersList(){\nExecuteByClassName('SearchFunction');\n}\n\n\nvar x_EmptyEvents= function (obj) {\nvar results=obj.responseText;\nif(results.length>3){alert(results);return;}\nExecuteByClassName('SearchFunction');\n\n\n}\n\nvar x_FreeWebsRebuildvHostsTable= function (obj) {\nvar results=obj.responseText;\nif(results.length>3){alert(results);return;}\nalert('{$freeweb_compile_background}');\nExecuteByClassName('SearchFunction');\n}\n\n\nvar x_klmsresetwebpassword{$t}= function (obj) {\nvar results=obj.responseText;\nif(results.length>3){alert(results);return;}\nExecuteByClassName('SearchFunction');\n}\n\nvar xDelete{$t}=function (obj) {\n\tvar results=obj.responseText;\n\tif(results.length>10){alert(results);return;}\n\t\$('#'+FreeWebIDMEM{$t}).remove();\n}\n\nfunction Delete{$t}(id,md){\n\tFreeWebIDMEM{$t}=md;\n\tif(confirm('{$delete_freeweb_text}')){\n\t\tvar XHR = new XHRConnection();\n\t\tXHR.appendData('source-delete',id);\n\t\tXHR.sendAndLoad('{$page}', 'POST',xDelete{$t});\n\t}\n}\n\nvar x_FreeWebRefresh=function (obj) {\nvar results=obj.responseText;\nif(results.length>10){alert(results);return;}\nExecuteByClassName('SearchFunction');\n}\n\nfunction FreeWebAddDefaultVirtualHost(){\nvar XHR = new XHRConnection();\nXHR.appendData('AddDefaultOne','yes');\nXHR.sendAndLoad('freeweb.php', 'POST',x_FreeWebRefresh);\n}\n\nfunction FreeWeCheckVirtualHost(){\nvar XHR = new XHRConnection();\nXHR.appendData('CheckAVailable','yes');\nXHR.sendAndLoad('freeweb.php', 'POST',x_FreeWebDelete);\n}\n\nvar x_RebuildFreeweb{$t}=function (obj) {\nvar results=obj.responseText;\nif(results.length>0){alert(results);}\nExecuteByClassName('SearchFunction');\n}\n\nfunction RebuildFreeweb(){\nvar XHR = new XHRConnection();\nXHR.appendData('rebuild-items','yes');\nXHR.sendAndLoad('freeweb.php', 'GET',x_RebuildFreeweb{$t});\n\n}\n\nfunction klmsresetwebpassword(){\nif(confirm('{$reset_admin_password} ?')){\nvar XHR = new XHRConnection();\nXHR.appendData('klms-reset-password','yes');\nXHR.sendAndLoad('klms.php', 'POST',x_klmsresetwebpassword{$t});\n}\n}\n\nfunction FreeWebsRebuildvHostsTable(servername){\nvar XHR = new XHRConnection();\nXHR.appendData('FreeWebsRebuildvHosts',servername);\nXHR.sendAndLoad('freeweb.edit.php', 'POST',x_FreeWebsRebuildvHostsTable);\n}\n\nfunction FreeWebsEnableSite(servername){\nvar XHR = new XHRConnection();\nXHR.appendData('FreeWebsEnableSite',servername);\nXHR.sendAndLoad('freeweb.servers.php', 'POST',x_FreeWebRefresh);\n}\n</script>\n"; }
function caches_search() { $prox = new squid_reverse(); $searchstring = string_to_flexquery("caches-search"); $q = new mysql_squid_builder(); $sql = "SELECT * FROM nginx_caches WHERE 1 {$searchstring} ORDER BY directory LIMIT 0,250"; $results = $q->QUERY_SQL($sql, 'artica_backup'); $tpl = new templates(); $GLOBALS["CLASS_TPL"] = $tpl; $boot = new boostrap_form(); $AdminPrivs = AdminPrivs(); $page = CurrentPageName(); $t = time(); $delete_text = $tpl->javascript_parse_text("{delete}"); $purge_cache = $tpl->javascript_parse_text("{purge_cache}"); while ($ligne = mysql_fetch_array($results, MYSQL_ASSOC)) { $icon = "disk-64.png"; $icon2 = "folder-network-64.png"; $color = "black"; $md = md5(serialize($ligne)); $keys_zone = $ligne["keys_zone"]; $delete = imgsimple("delete-64.png", null, "Delete{$t}('{$ligne["ID"]}','{$md}')"); $purge = imgsimple("dustbin-64.png", null, "Purge{$t}('{$ligne["ID"]}')"); if (!$AdminPrivs) { $delete = imgsimple("delete-64-grey.png", null, "blur()"); $purge = imgsimple("dustbin-64-grey.png", null, "blur()"); } $jsedit = $boot->trswitch("Loadjs('{$page}?js-cache=yes&ID={$ligne["ID"]}')"); $CurrentSize = $ligne["CurrentSize"]; $CurrentSizeText = FormatBytes($CurrentSize / 1024); $tr[] = "\n\t\t<tr style='color:{$color}' id='{$md}'>\n\t\t<td width=1% nowrap {$jsedit} style='vertical-align:middle' nowrap><img src='img/{$icon}'></td>\n\t\t<td width=80% {$jsedit} style='vertical-align:middle'>\n\t\t\t<span style='font-size:18px;font-weight:bold'>{$ligne["directory"]}</span>\n\t\t\t<br><div style='font-size:16px'>{$CurrentSizeText}/{$ligne["max_size"]}G</div>\n\t\t</td>\n\t\t\n\t\t<td width=1% nowrap {$jsedit} style='vertical-align:middle' nowrap>\n\t\t\t<span style='font-size:18px;font-weight:bold'>{$keys_zone}</span>\n\t\t</td>\n\t\t<td width=1% nowrap {$jsedit} style='vertical-align:middle' nowrap>\n\t\t\t<span style='font-size:18px;font-weight:bold'>{$ligne["max_size"]}G</span>\n\t\t</td>\n\t\t<td width=1% nowrap style='vertical-align:middle;min-width:64px'>{$purge}</td>\n\t\t<td width=1% nowrap style='vertical-align:middle;min-width:64px'>{$delete}</td>\n\t\t\n\t\t\n\t\t</tr>\n\t\t"; } echo $tpl->_ENGINE_parse_body("\n\t\n\t\t\t<table class='table table-bordered table-hover'>\n\t\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan=2>{directory}</th>\n\t\t\t\t\t<th >{name}</th>\n\t\t\t\t\t<th >{maxsize}</th>\n\t\t\t\t\t<th> </th>\n\t\t\t\t\t<th> </th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t <tbody>") . @implode("", $tr) . "</tbody></table>\n<script>\nvar mem{$t}='';\n\nvar xDelete{$t} = function (obj) {\n\tvar tempvalue=obj.responseText;\n\tif(tempvalue.length>3){alert(tempvalue);return}\n\t\$('#'+mem{$t}).remove();\n}\nvar xPurge{$t} = function (obj) {\n\tvar tempvalue=obj.responseText;\n\tif(tempvalue.length>3){alert(tempvalue);return}\n\tExecuteByClassName('SearchFunction');\n\t\n}\t\t\t\n\nfunction Delete{$t}(id,md){\n\t\tmem{$t}=md;\n\t\tif(!confirm('{$delete_text}: '+id)){return;}\n\t\tvar XHR = new XHRConnection();\n\t\tXHR.appendData('DeleteCache',id);\n\t\tXHR.sendAndLoad('{$page}', 'POST',xDelete{$t});\t\t\t\n}\n\t\nfunction Purge{$t}(id){\n\tif(!confirm('{$purge_cache}: '+id)){return;}\n\tvar XHR = new XHRConnection();\n\tXHR.appendData('PurgeCache',id);\n\tXHR.sendAndLoad('{$page}', 'POST',xPurge{$t});\t\t\t\n}\t\n\t\n\t\n</script>\t\n\t\t\t \t\t\n"; }
function list_items() { $STATUS = unserialize(@file_get_contents("/usr/share/artica-postfix/ressources/logs/web/nginx.status.acl")); $tpl = new templates(); $MyPage = CurrentPageName(); $all_text = $tpl->_ENGINE_parse_body("{all}"); $GLOBALS["CLASS_TPL"] = $tpl; $q = new mysql_squid_builder(); $OrgPage = "miniadmin.proxy.reverse.php"; $sock = new sockets(); $EnableFreeWeb = intval($sock->GET_INFO("EnableFreeWeb")); $FORCE = 1; $search = '%'; $table = "nginx_caches"; $page = 1; $freeweb_compile_background = $tpl->javascript_parse_text("{freeweb_compile_background}"); $reset_admin_password = $tpl->javascript_parse_text("{reset_admin_password}"); $delete_freeweb_text = $tpl->javascript_parse_text("{delete_freeweb_text}"); $delete_freeweb_nginx_text = $tpl->javascript_parse_text("{delete_freeweb_nginx_text}"); $delete_freeweb_dnstext = $tpl->javascript_parse_text("{delete_freeweb_dnstext}"); $total = 0; if ($q->COUNT_ROWS($table, "artica_backup") == 0) { json_error_show("no data", 1); } if (isset($_POST["sortname"])) { if ($_POST["sortname"] != null) { $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}"; } } if (isset($_POST['page'])) { $page = $_POST['page']; } $searchstring = string_to_flexquery(); if ($searchstring != null) { $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE {$FORCE} {$searchstring}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_events")); $total = $ligne["TCOUNT"]; } else { if (strlen($FORCE) > 2) { $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE {$FORCE}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_events")); $total = $ligne["TCOUNT"]; } else { $total = $q->COUNT_ROWS($table, "artica_events"); } } if (isset($_POST['rp'])) { $rp = $_POST['rp']; } if (!is_numeric($rp)) { $rp = 50; } $pageStart = ($page - 1) * $rp; $limitSql = "LIMIT {$pageStart}, {$rp}"; $sql = "SELECT * FROM `{$table}` WHERE {$FORCE} {$searchstring} {$ORDER} {$limitSql}"; writelogs($sql, __FUNCTION__, __FILE__, __LINE__); $results = $q->QUERY_SQL($sql, "artica_events"); if (!$q->ok) { json_error_show($q->mysql_error, 1); } $data = array(); $data['page'] = $page; $data['total'] = $total; $data['rows'] = array(); $CurrentPage = CurrentPageName(); if (mysql_num_rows($results) == 0) { json_error_show("no data"); } $searchstring = string_to_flexquery(); if (!AdminPrivs()) { $sql = "SELECT reverse_www.* FROM reverse_www,reverse_privs\n\t\tWHERE reverse_privs.servername=reverse_www.servername\n\t\tAND reverse_privs.uid='{$_SESSION["uid"]}' {$searchstring} ORDER BY servername LIMIT 0,250"; } $results = $q->QUERY_SQL($sql, 'artica_backup'); if (!$q->ok) { json_error_show($q->mysql_error); } $q1 = new mysql(); $t = time(); while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) { $keys_zone = $ligne["keys_zone"]; $delete = imgsimple("delete-48.png", null, "Loadjs('{$MyPage}?js-delete=yes&ID={$ligne["ID"]}')"); $jsedit = "Loadjs('{$MyPage}?js-cache=yes&ID={$ligne["ID"]}')"; $CurrentSize = $ligne["CurrentSize"]; $CurrentSizeText = FormatBytes($CurrentSize / 1024); $purge = imgsimple("dustbin-48.png", null, "Loadjs('{$MyPage}?js-purge=yes&ID={$ligne["ID"]}')"); $data['rows'][] = array('id' => $ligne['categorykey'], 'cell' => array("<span style='font-size:22px;font-weight:bold;padding-top:8px'>{$keys_zone}</span>", "<a href=\"javascript:blur();\"\n\t\t\t\t\t\t\tstyle='font-size:22px;font-weight:bold;text-decoration:underline'\n\t\t\t\t\t\t\tOnClick=\"javascript:{$jsedit}\">{$ligne["directory"]}</a>", "<span style='font-size:22px;font-weight:bold'>{$CurrentSizeText}/{$ligne["max_size"]}G</span>", "<center>{$purge}</center>", "<center>{$delete}</center>")); } echo json_encode($data); }
function sources_search() { $boot = new boostrap_form(); $page = CurrentPageName(); $tpl = new templates(); $sock = new sockets(); $q = new mysql_squid_builder(); $table = "authenticator_authlnk"; $ORDER = $boot->TableOrder(array("zorder" => "ASC")); $searchstring = string_to_flexquery("sources-search"); if (!$q->TABLE_EXISTS("authenticator_authlnk")) { $f = new squid_reverse(); } $table = "(\n\tSELECT\n\tauthenticator_authlnk.ID,\n\tauthenticator_authlnk.zorder,\n\tauthenticator_auth.groupname,\n\tauthenticator_auth.group_type,\n\tauthenticator_authlnk.groupid\n\tFROM authenticator_authlnk,authenticator_auth\n\tWHERE authenticator_authlnk.ruleid='{$_GET["mainrule"]}'\n\t\t\tAND authenticator_authlnk.groupid=authenticator_auth.ID\n\t\t\t) as t"; $sql = "SELECT * FROM {$table} WHERE 1 {$searchstring} ORDER BY {$ORDER} LIMIT 0,250"; $results = $q->QUERY_SQL($sql); if (!$q->ok) { senderrors($q->mysql_error . "<br>{$sql}"); } $AdminPrivs = AdminPrivs(); $t = time(); while ($ligne = mysql_fetch_assoc($results)) { $edit = $boot->trswitch("Loadjs('{$page}?sources-group-js=yes&groupid={$ligne["groupid"]}');"); $md = md5(serialize($ligne)); if ($AdminPrivs) { $delete = imgsimple("delete-48.png", "{delete}", "Delete{$t}('{$ligne["ID"]}','{$md}')"); } $tr[] = "\n\t\t\t<tr id='{$md}'>\n\t\t\t<td style='font-size:18px' width=99% nowrap {$edit}>{$ligne["groupname"]} - " . $tpl->_ENGINE_parse_body($GLOBALS["TYPES"][$ligne["group_type"]]) . "</td>\n\t\t\t<td style='font-size:18px' width=1% nowrap>{$delete}</td>\n\t\t\t\n\t\t\t</tr>\n\t\t\t"; } $delete_text = $tpl->javascript_parse_text("{unlink}"); echo $boot->TableCompile(array("rulename" => " {groupname}", "delete" => null), $tr) . "\n\n<script>\nvar mem{$t}='';\n\tvar xDelete{$t}=function(obj){\n\t\tvar tempvalue=obj.responseText;\n\t\tif(tempvalue.length>3){alert(tempvalue);return;}\n\t\t\$('#'+mem{$t}).remove();\n\t}\nfunction Delete{$t}(ID,mem){\n\tmem{$t}=mem;\n\tif(confirm('{$delete_text} ID: '+ID+'?')){\n\t\tmem{$t}=mem;\n\t\tvar XHR = new XHRConnection();\n\t\tXHR.appendData('source-unlink',ID);\n\t\tXHR.sendAndLoad('{$page}', 'POST',xDelete{$t});\n\t}\n}\n</script>\n\t"; }
function rules_search() { $boot = new boostrap_form(); $page = CurrentPageName(); $tpl = new templates(); $sock = new sockets(); $q = new mysql_squid_builder(); $table = "authenticator_rules"; $t = time(); $ORDER = $boot->TableOrder(array("ID" => "DESC")); if (!$q->TABLE_EXISTS($table)) { $f = new squid_reverse(); } $searchstring = string_to_flexquery("rules-search"); $sql = "SELECT * FROM {$table} WHERE 1 {$searchstring} ORDER BY {$ORDER} LIMIT 0,250"; $results = $q->QUERY_SQL($sql); if (!$q->ok) { senderrors($q->mysql_error . "<br>{$sql}"); } $AdminPrivs = AdminPrivs(); while ($ligne = mysql_fetch_assoc($results)) { $edit = $boot->trswitch("Loadjs('{$page}?rules-js={$ligne["ID"]}');"); $md = md5(serialize($ligne)); if ($AdminPrivs) { $delete = imgsimple("delete-48.png", "{delete}", "Delete{$t}('{$ligne["ID"]}','{$md}')"); } $explaintext = EXPLAIN_RULE($ligne["ID"]); $tr[] = "\n\t\t<tr id='{$md}'>\n\t\t<td style='font-size:18px' width=1% nowrap {$edit}>{$ligne["rulename"]}</td>\n\t\t<td style='font-size:18px' width=90% nowrap>{$ligne["explain"]}<div style='font-size:12px'>{$explaintext}</div></td>\n\t\t<td style='font-size:18px' width=1% nowrap>{$delete}</td>\n\t\t</tr>\n\t\t"; } $delete_text = $tpl->javascript_parse_text("{delete}"); echo $boot->TableCompile(array("rulename" => " {rulename}", "explain:no" => "{explain}", "delete" => null), $tr) . "\n\t\t\n<script>\nvar mem{$t}='';\nvar xDelete{$t}=function(obj){\n\tvar tempvalue=obj.responseText;\n\tif(tempvalue.length>3){alert(tempvalue);return;}\n\t\$('#'+mem{$t}).remove();\n}\nfunction Delete{$t}(ID,mem){\n\tmem{$t}=mem;\n\tif(confirm('{$delete_text} ID: '+ID+'?')){\n\t\tmem{$t}=mem;\n\t\tvar XHR = new XHRConnection();\n\t\tXHR.appendData('rules-delete',ID);\n\t\tXHR.sendAndLoad('{$page}', 'POST',xDelete{$t});\n\t}\n}\n</script>\n"; }
function list_items() { $STATUS = unserialize(@file_get_contents("/usr/share/artica-postfix/ressources/logs/web/nginx.status.acl")); $tpl = new templates(); $MyPage = CurrentPageName(); $all_text = $tpl->_ENGINE_parse_body("{all}"); $GLOBALS["CLASS_TPL"] = $tpl; $q = new mysql_squid_builder(); $OrgPage = "miniadmin.proxy.reverse.php"; $sock = new sockets(); $EnableFreeWeb = intval($sock->GET_INFO("EnableFreeWeb")); if (!$q->FIELD_EXISTS("reverse_www", "zOrder")) { $q->QUERY_SQL("ALTER TABLE `reverse_www` ADD `zOrder` smallint(100) NOT NULL default '0'"); if (!$q->ok) { echo $q->mysql_error_html(); } } $up = imgsimple("arrow-up-32.png", null, "Loadjs('{$MyPage}?move-item-js=yes&ID={$ligne["ID"]}&dir=0&t={$_GET["t"]}')"); $down = imgsimple("arrow-down-32.png", null, "Loadjs('{$MyPage}?move-item-js=yes&ID={$ligne["ID"]}&dir=1&t={$_GET["t"]}')"); $FORCE = 1; $search = '%'; $table = "reverse_www"; $page = 1; $freeweb_compile_background = $tpl->javascript_parse_text("{freeweb_compile_background}"); $reset_admin_password = $tpl->javascript_parse_text("{reset_admin_password}"); $delete_freeweb_text = $tpl->javascript_parse_text("{delete_freeweb_text}"); $delete_freeweb_nginx_text = $tpl->javascript_parse_text("{delete_freeweb_nginx_text}"); $delete_freeweb_dnstext = $tpl->javascript_parse_text("{delete_freeweb_dnstext}"); $SSL_CLIENT_VERIFICATION = $tpl->javascript_parse_text("{SSL_CLIENT_VERIFICATION}"); $total = 0; if ($q->COUNT_ROWS($table, "artica_backup") == 0) { json_error_show("no data", 1); } if (isset($_POST["sortname"])) { if ($_POST["sortname"] != null) { $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}"; } } if (isset($_POST['page'])) { $page = $_POST['page']; } $searchstring = string_to_flexquery(); if ($searchstring != null) { $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE {$FORCE} {$searchstring}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_events")); $total = $ligne["TCOUNT"]; } else { if (strlen($FORCE) > 2) { $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE {$FORCE}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_events")); $total = $ligne["TCOUNT"]; } else { $total = $q->COUNT_ROWS($table, "artica_events"); } } if (isset($_POST['rp'])) { $rp = $_POST['rp']; } if (!is_numeric($rp)) { $rp = 50; } $pageStart = ($page - 1) * $rp; $limitSql = "LIMIT {$pageStart}, {$rp}"; $sql = "SELECT * FROM `{$table}` WHERE {$FORCE} {$searchstring} {$ORDER} {$limitSql}"; writelogs($sql, __FUNCTION__, __FILE__, __LINE__); $results = $q->QUERY_SQL($sql, "artica_events"); if (!$q->ok) { json_error_show($q->mysql_error, 1); } $data = array(); $data['page'] = $page; $data['total'] = $total; $data['rows'] = array(); $CurrentPage = CurrentPageName(); if (mysql_num_rows($results) == 0) { json_error_show("no data"); } $searchstring = string_to_flexquery(); if (!AdminPrivs()) { $sql = "SELECT reverse_www.* FROM reverse_www,reverse_privs\n\t\tWHERE reverse_privs.servername=reverse_www.servername\n\t\tAND reverse_privs.uid='{$_SESSION["uid"]}' {$searchstring} ORDER BY servername LIMIT 0,250"; } $results = $q->QUERY_SQL($sql, 'artica_backup'); if (!$q->ok) { json_error_show($q->mysql_error); } $q1 = new mysql(); $t = time(); while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) { $status_text = null; $certificate_text = null; $icon = "clound-in-64.png"; $freewebicon = "64-firewall-search.png"; $color = "black"; $status = array(); $color_blue = "#1961FF"; $portText = null; $ssl_client_certificate_text = null; $RedirectQueries = $ligne["RedirectQueries"]; $zavail = $ligne["zavail"]; $md = md5(serialize($ligne)); $default_server = $ligne["default_server"]; $explain_text = null; $SiteEnabled = $ligne["enabled"]; $servername = $ligne["servername"]; $servername_enc = urlencode($servername); $Compile = imgsimple("apply-48.png", null, "Loadjs('nginx.single.progress.php?servername={$servername_enc}')"); $limit_rate = $ligne["limit_rate"]; $limit_rate_after = $ligne["limit_rate_after"]; $ssl_backend = $ligne["ssl_backend"]; $DeleteFreeWeb = "Loadjs('{$OrgPage}?delete-websites-js=yes&servername={$servername_enc}&md={$md}')"; $icon2 = imgsimple("reconfigure-48.png", null, "Loadjs('miniadmin.proxy.reverse.reconfigure.php?servername={$servername_enc}')"); $up = imgsimple("arrow-up-32.png", null, "Loadjs('{$MyPage}?move-item-js=yes&servername={$servername_enc}&dir=0&t={$_GET["t"]}')"); $down = imgsimple("arrow-down-32.png", null, "Loadjs('{$MyPage}?move-item-js=yes&servername={$servername_enc}&dir=1&t={$_GET["t"]}')"); $ssl_client_certificate = $ligne["ssl_client_certificate"]; if ($ligne["DenyConf"] == 1) { $icon = "hearth-blocked-64.png"; } if ($SiteEnabled == 0) { $icon = "domain-main-64-grey.png"; $color = "#8a8a8a"; $icon2 = " "; $color_blue = $color; } $NgINxDestColor = $color; $delete = imgsimple("delete-48.png", null, $DeleteFreeWeb); $jsedit = imgsimple($icon, null, "Loadjs('nginx.site.php?servername={$servername_enc}')"); $jsEditWW = $jsedit; $jseditA = $jsedit; $jseditC = imgsimple("script-48.png", null, "Loadjs('nginx.script.php?website-script-js=yes&servername={$servername_enc}')"); if ($RedirectQueries != null) { $NgINxDestColor = "#8a8a8a"; } if ($zavail == 0) { $jseditC = imgsimple("warning42.png", null, "Loadjs('nginx.script.php?website-script-js=yes&servername={$servername_enc}')"); } $NGINX_DESTINATION_EXPLAIN = NGINX_DESTINATION_EXPLAIN($ligne["cache_peer_id"], $NgINxDestColor); if ($SiteEnabled == 1) { if (isset($STATUS[$servername])) { if ($STATUS[$servername]["ACCP"] > 0) { $ac = FormatNumber($STATUS[$servername]["AC"]); $ACCP = FormatNumber($STATUS[$servername]["ACCP"]); $ACHDL = FormatNumber($STATUS[$servername]["ACHDL"]); $ACRAQS = FormatNumber($STATUS[$servername]["ACRAQS"]); if ($STATUS[$servername]["ACCP"] > 0) { $ss = round($STATUS[$servername]["ACRAQS"] / $STATUS[$servername]["ACCP"], 2); } $reading = FormatNumber($STATUS[$servername]["reading"]); $writing = FormatNumber($STATUS[$servername]["writing"]); $waiting = FormatNumber($STATUS[$servername]["waiting"]); $status[] = "{active_connections}: {$ac} | {accepteds}: {$ACCP}<br>{handles}:{$ACRAQS} ({$ss}/{second})"; $status[] = " | {keepalive}: {$waiting} | {reading}: {$reading} | {writing}:{$writing}"; } } } if ($limit_rate > 0) { $limit_rate_after_caption = $tpl->_ENGINE_parse_body("{limit_rate_after_caption}"); $limit_rate_after_caption = str_replace("%s", "{$limit_rate}MB/s", $limit_rate_after_caption); $limit_rate_after_caption = str_replace("%f", "{$limit_rate_after}MB", $limit_rate_after_caption); $status[] = "<br><span style='font-size:18px;font-weight:bold;color:#EEB853'>{$limit_rate_after_caption}</span>"; } if (count($status) > 0) { $status_text = $tpl->_ENGINE_parse_body("<br><span style='font-size:18px;color:{$color}'>" . @implode("", $status) . "</span>"); } $FreeWebText = null; $explain_text = null; if ($EnableFreeWeb == 0) { if ($ligne["ipaddr"] == "127.0.0.1") { $ligne["ipaddr"] = "{error}"; } if ($ligne["cache_peer_id"] == 0) { $ligne["cache_peer_id"] = -1; } } if ($ligne["ipaddr"] == "127.0.0.1" or $ligne["cache_peer_id"] == 0) { $jsedit = imgsimple($icon, null, "Loadjs('freeweb.edit.php?hostname={$servername}&t={$t}')"); $certificate_text = null; $explain_text = NGINX_EXPLAIN_REVERSE($ligne["servername"]); $delete = imgsimple("delete-48.png", null, $DeleteFreeWeb); $jseditS = null; $freewebicon = "domain-64.png"; $FreeWebText = "<a href=\"javascript:blur();\" \n\t\t\tOnClick=\"javascript:Loadjs('freeweb.edit.php?hostname={$servername}&t={$t}')\" style='color:{$color}'>127.0.0.1:82 (FreeWeb)</a>"; } else { $explain_text = NGINX_EXPLAIN_REVERSE($ligne["servername"], "{$color}"); if ($ligne["port"] > 0) { $portText = ":{$ligne["port"]}"; } $ligne2 = mysql_fetch_array($q->QUERY_SQL("SELECT servername,ipaddr,port,OnlyTCP FROM reverse_sources WHERE ID='{$ligne["cache_peer_id"]}'")); $OnlyTCP = $ligne2["OnlyTCP"]; $FreeWebText = "{$ligne2["servername"]}:{$ligne2["port"]}"; if ($OnlyTCP == 0) { $ligne["owa"] = 0; if ($ligne["ssl"] == 1) { if ($ligne["port"] == 80) { $portText = $portText . "/443"; } if ($ssl_client_certificate == 1) { $ssl_client_certificate_text = "<br><strong style='color:{$color_blue}'>« {$SSL_CLIENT_VERIFICATION} »</strong>"; } } } if ($OnlyTCP == 1) { $certificate_text = null; $portText = $portText . " <strong style='color:{$color}'>TCP</strong>"; } } if ($ligne["owa"] == 1) { $freewebicon = "exchange-2010-64.png"; } if ($ligne["poolid"] > 0) { $freewebicon = "64-cluster.png"; $ligne2 = mysql_fetch_array($q->QUERY_SQL("SELECT poolname FROM nginx_pools WHERE ID='{$ligne["poolid"]}'")); $ligne["ipaddr"] = $ligne2["poolname"]; } $stats = null; $FinalDestination = "{$ligne["ipaddr"]}{$FreeWebText}"; if ($default_server == 1) { $servername = "{$servername} ({$all_text} * )"; $icon = "free-web-64.png"; if ($SiteEnabled == 0) { $icon = "free-web-64-grey.png"; } } if ($ssl_backend == 1) { $NGINX_DESTINATION_EXPLAIN = $NGINX_DESTINATION_EXPLAIN . $tpl->_ENGINE_parse_body("<li style='font-weight:bold;color:{$color}'>{UseSSL}</li>"); } $data['rows'][] = array('id' => $ligne['categorykey'], 'cell' => array("<center>{$jseditC}</center>", "<a href=\"javascript:blur();\"\n\t\t\t\t\t\t\tstyle='font-size:26px;font-weight:bold;text-decoration:underline;color:{$color}'\n\t\t\t\t\t\t\tOnClick=\"javascript:GoToNginxOption('{$servername_enc}')\">{$servername}{$portText}</a>\n\t\t\t\t\t\t\t{$certificate_text}{$ssl_client_certificate_text}{$status_text}\n\t\t\t\t\t\t\t{$explain_text}", "<span style='font-size:18px;font-weight:bold;color:{$color}'>{$NGINX_DESTINATION_EXPLAIN}</span>", "<center style='margin-top:10px'>{$up}</center>", "<center style='margin-top:10px'>{$down}</center>", "<center>{$Compile}</center>", "<center>{$delete}</center>")); } echo json_encode($data); }