* * This file is part of Easy-WI. * * Easy-WI is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Easy-WI is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Easy-WI. If not, see . * * Diese Datei ist Teil von Easy-WI. * * Easy-WI ist Freie Software: Sie koennen es unter den Bedingungen * der GNU General Public License, wie von der Free Software Foundation, * Version 3 der Lizenz oder (nach Ihrer Wahl) jeder spaeteren * veroeffentlichten Version, weiterverbreiten und/oder modifizieren. * * Easy-WI wird in der Hoffnung, dass es nuetzlich sein wird, aber * OHNE JEDE GEWAEHELEISTUNG, bereitgestellt; sogar ohne die implizite * Gewaehrleistung der MARKTFAEHIGKEIT oder EIGNUNG FUER EINEN BESTIMMTEN ZWECK. * Siehe die GNU General Public License fuer weitere Details. * * Sie sollten eine Kopie der GNU General Public License zusammen mit diesem * Programm erhalten haben. Wenn nicht, siehe . */ define('EASYWIDIR', dirname(__FILE__)); include(EASYWIDIR . '/stuff/functions.php'); include(EASYWIDIR . '/stuff/class_validator.php'); include(EASYWIDIR . '/stuff/vorlage.php'); include(EASYWIDIR . '/stuff/config.php'); include(EASYWIDIR . '/stuff/settings.php'); $die=false; if (!isset($admin_id) and !isset($user_id)) { redirect('login.php'); } else if(isset($admin_id)) { $pa=User_Permissions($admin_id); } else if (isset($user_id)) { $pa=User_Permissions($user_id); } else { $die=true; } if (!isset($pa) or count($pa)==0 or ((!isset($admin_id) and !isset($user_id)) or (((!$pa['gserver']) and !$pa['voiceserver'] and !$pa['voicemasterserver'] and !$pa['traffic'] and !$pa['user'] and !rsellerpermisions($admin_id) and !$pa['usertickets']) and (!$pa['restart'] and !$pa['usertickets'])))) { $die=true; } if ($ui->smallletters('w',5,'get')=='check') { $return='bad'; if ($ui->w('method',40,'get')) { $method=$ui->w('method',40,'get'); if ($ui->id('length',255,'get') and $ui->$method('check', $ui->id('length',255,'get'),'get')) $return='ok'; else if ($ui->$method('check','get')) $return='ok'; } echo $return; } else if ($die==true) { redirect('login.php'); } else if ($ui->username('mapgroup','50','get')) { $sprache=getlanguagefile('gserver', $user_language, $reseller_id); $query = $sql->prepare("SELECT `mapGroup` FROM `servertypes` WHERE `shorten`=? AND `resellerid`=? LIMIT 1"); $query->execute(array($ui->username('mapgroup','50','get'), $reseller_id)); foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) { if ($row['mapGroup']!=null) { $mapGroup=$row['mapGroup']; require_once IncludeTemplate($template_to_use,'ajax_userpanel_mapgroup.tpl'); } } } else if ($ui->id('id',19,'get') and $ui->st('d','get')=="vs" and ($pa['addvserver'] or $pa['root'])) { $sprache=getlanguagefile('reseller', $user_language, $reseller_id); if ($reseller_id!=0 and $admin_id!=$reseller_id) { $reseller_id=$admin_id; $notexclusive=true; } $query = $sql->prepare("SELECT `id`,`cpu`,`active`,`ip`,`esxi`,`description`,`cores`,`mhz`,`hdd`,`ram`,`maxserver`,`thin`,`thinquota` FROM `virtualhosts` WHERE `id`=?"); $query2=$sql->prepare("SELECT `cores`,`minmhz`,`hddsize`,`mountpoint`,`minram` FROM `virtualcontainer` WHERE hostid=?"); $query->execute(array($ui->id('id',19,'get'))); foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) { $id=$row['id']; $cores=$row['cores']; $mhz=$row['mhz']; $hddsize=$row['hdd']; $ram=$row['ram']; $maxserver=$row['maxserver']; $esxi=$row['esxi']; $besthostcpu=$row['cpu'] . ' ' . $cores."x".$mhz." MHz"; if ($row['thin']=="Y") { $percent=$row['thinquota']; } else { $percent="100"; } $ramused=0; $hdd_rows=explode("\r\n", $row['hdd']); foreach ($hdd_rows as $hddline) { $data_explode=explode(" ", $hddline); if (isset($data_explode[1])) { $mountpoint=$data_explode[0]; $mountsize[$mountpoint]=$data_explode[1]; $mountunused[$mountpoint]=0; $hdd[]=$mountpoint; } } $i=1; while ($i<=$cores) { $core[]=$i; $cpucore[$i]=0; $i++; } $i=1; if ($esxi=="Y") { $maxcore="8"; } else { $maxcore=$cores; } while ($i<=$cores and $i<=$maxcore) { $add_core[]=$i; $i++; } $query2->execute(array($id)); $i2=0; foreach ($query2->fetchAll(PDO::FETCH_ASSOC) as $row2) { $mountpoint=$row2['mountpoint']; $addstracthdd=$mountunused[$mountpoint]+($row2['hddsize']*($percent/100)); $mountunused[$mountpoint]=$addstracthdd; $addstractram=$ramused+$row2['minram']; $ramused=$addstractram; $cpuhz=$row2['cores']*$row2['minmhz']; $addcpu=$cpucore[1]+$cpuhz; if ($addcpu<=$mhz) { $cpucore[1]=$addcpu; } else { $cpucore[1]=$mhz; $nextcore="2"; while ($nextcore<=$cores) { $extra=$addcpu-$mhz; $addcpu=$cpucore[$nextcore]+$extra; if ($addcpu<=$mhz and $addcpu>=0) { $cpucore[$nextcore]=$addcpu; } else if ($addcpu>=0) { $cpucore[$nextcore]=$mhz; } $nextcore++; } } $i2++; } foreach ($hdd as $mountpoint) { $freespace[$mountpoint]=$mountsize[$mountpoint]-($mountunused[$mountpoint]*($percent/100)); } natsort($freespace); $freespace=array_reverse($freespace); foreach ($freespace as $mountpoint => $free) { $best_hdd[]=$mountpoint; } } require_once IncludeTemplate($template_to_use,'ajax_admin_vserver_allocation.tpl'); } else if ($ui->st('d','get')=="ui" and $ui->id('id',19,'get')) { foreach (freeips($ui->id('id',19,'get')) as $ip) echo $ip."
"; } else if ($ui->st('d','get')=="my" and $ui->id('id',19,'get')) { $query = $sql->prepare("SELECT s.`ip`,s.`max_databases`,COUNT(d.`id`) AS `installed` FROM `mysql_external_servers` s LEFT JOIN `mysql_external_dbs` d ON s.`id`=d.`sid` WHERE s.`id`=? AND s.`active`='Y' AND s.`resellerid`=? LIMIT 1"); $query->execute(array($ui->id('id',19,'get'), $reseller_id)); foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) { $installed=$row['installed']; $max_databases=$row['max_databases']; } if (!isset($installed)) { $installed=0; $max_databases=0; } require_once IncludeTemplate($template_to_use,'ajax_admin_mysql_server.tpl'); } else if ($ui->st('d','get')=="tr" and $ui->st('w','get')) { if ($ui->st('w','get')=="su") { if ($reseller_id==0) { $query = $sql->prepare("SELECT `ips` FROM `resellerdata`"); $query->execute(); } else if ($reseller_id==$admin_id) { $query = $sql->prepare("SELECT `ips` FROM `resellerdata` WHERE `resellersid`=?"); $query->execute(array($reseller_id)); } else { $query = $sql->prepare("SELECT `ips` FROM `resellerdata` WHERE `resellerid`=? AND c.`resellersid`=?"); $query->execute(array($admin_id, $reseller_id)); } $ips=array(); $userips=array(); foreach ($pselect->fetchAll(PDO::FETCH_ASSOC) as $row) { unset($userips); $userips=ipstoarray($row['ips']); foreach ($userips as $ip) { $ip_ex=explode(".", $ip); $ips[]=$ip_ex[0].".".$ip_ex[1].".".$ip_ex[2]."."; } } $subnets=array_unique($ips); natsort($subnets); foreach ($subnets as $subnet) { $data[]=''; } } else if ($ui->st('w','get')=="rs") { if ($reseller_id==0) { $query = $sql->prepare("SELECT `id`,`cname` FROM `userdata` WHERE `accounttype`='r' AND `id`=`resellerid`"); $query->execute(); } foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) $data[]=''; } else if ($ui->st('w','get')=="us") { if ($reseller_id==0) { $query = $sql->prepare("SELECT `id`,`cname` FROM `userdata` WHERE `accounttype`='r'"); $query->execute(); } else if ($reseller_id==$admin_id) { $query = $sql->prepare("SELECT `id`,`cname` FROM `userdata` WHERE `accounttype`='r' AND `resellerid`=?"); $query->execute(array($reseller_id)); } foreach ($pselect->fetchAll(PDO::FETCH_ASSOC) as $row) { $data[]=''; } } else if ($ui->st('w','get')=="se") { if ($reseller_id==0) { $query = $sql->prepare("SELECT c.`id`,u.`cname` FROM `virtualcontainer` c LEFT JOIN `userdata` u ON c.`userid`=u.`id` ORDER BY u.`id`,c.`id`"); $query->execute(); } else if ($reseller_id==$admin_id){ $query = $sql->prepare("SELECT c.`id`,u.`cname` FROM `virtualcontainer` c LEFT JOIN `userdata` u ON c.`userid`=u.`id` WHERE c.`resellerid`=? ORDER BY u.`id`,c.`id`"); $query->execute(array($reseller_id)); } else { $query = $sql->prepare("SELECT c.`id`,u.`cname` FROM `virtualcontainer` c LEFT JOIN `userdata` u ON c.`userid`=u.`id` WHERE c.`userid`=? AND c.`resellerid`=? ORDER BY u.`id`,c.`id`"); $query->execute(array($admin_id, $reseller_id)); } foreach ($pselect->fetchAll(PDO::FETCH_ASSOC) as $row) $data[]=''; } else if ($ui->st('w','get')=="ip") { $userips=array(); if ($reseller_id==0) { $query = $sql->prepare("SELECT `ips` FROM `resellerdata`"); $query->execute(); } else if ($reseller_id==$admin_id) { $query = $sql->prepare("SELECT `ips` FROM `resellerdata` WHERE `resellersid`=?"); $query->execute(array($reseller_id)); } else { $query = $sql->prepare("SELECT `ips` FROM `resellerdata` WHERE `resellerid`=? AND c.`resellersid`=?"); $query->execute(array($admin_id, $reseller_id)); } $ips=array(); foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) { foreach (ipstoarray($row['ips']) as $userip) $userips[]=$userip; } $ips=array_unique($userips); natsort($ips); foreach ($ips as $ip) $data[]=''; } require_once IncludeTemplate($template_to_use,'ajax_admin_traffic.tpl'); } else if ($ui->st('d','get')=="vu" and $ui->st('w','get')) { if ($ui->st('w','get')=="us") { $query = $sql->prepare("SELECT u.`id`,u.`cname`,u.`vname`,u.`name` FROM `userdata` u INNER JOIN `voice_server` v ON u.`id`=v.`userid` AND v.`active`='Y' WHERE u.`resellerid`=? GROUP BY u.`id`"); $query->execute(array($reseller_id)); foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) $data[]=''; } else if ($ui->st('w','get')=="se") { $query = $sql->prepare("SELECT v.`id`,v.`ip`,v.`port`,v.`dns`,m.`usedns` FROM `voice_server` v LEFT JOIN `voice_masterserver` m ON v.`masterserver`=m.`id` WHERE v.`resellerid`=? ORDER BY v.`ip`,v.`port`"); $query->execute(array($reseller_id)); foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) { $server=$row['ip'].':'.$row['port']; $data[]=''; } } else if ($ui->st('w','get')=="ma") { $query = $sql->prepare("SELECT `id`,`ssh2ip` FROM `voice_masterserver` WHERE `resellerid`=? ORDER BY `ssh2ip`"); $query->execute(array($reseller_id)); foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) $data[]=''; } require_once IncludeTemplate($template_to_use,'ajax_admin_voice_stats.tpl'); } else if ($ui->username('distro','50','get') and $ui->id('id',19,'get') and ($pa['vserversettings'] or $pa['root']) and $reseller_id==0) { $pselect=$sql->prepare("SELECT `pxeautorun` FROM `resellerimages` WHERE `bitversion`=? AND `distro`=?"); $pselect->execute(array($ui->id('id',19,'get'), $ui->username('distro','50','get'))); $usedpxeautorun=array(); foreach ($pselect->fetchAll(PDO::FETCH_ASSOC) as $row) { $usedpxeautorun[]=$row['pxeautorun']; } $i=0; while ($i<="9") { if (!in_array($i, $usedpxeautorun)){ $pxeautorun[]=$i; } $i++; } ?> username('short','50','get') or $ui->username('shorten','50','get')) and $pa['restart']) { $sprache=getlanguagefile('gserver', $user_language, $reseller_id); if ($reseller_id!=0 and $admin_id!=$reseller_id) { $reseller_id=$admin_id; } $get_shorten=$ui->username('shorten', 50,'get'); if ($ui->username('short', 50,'get')) { $get_shorten=$get_short; } $query = $sql->prepare("SELECT `id` FROM `eac` WHERE `active`='Y' AND `resellerid`=? LIMIT 1"); $query->execute(array($reseller_id)); $count=$query->rowCount(); $query2=$sql->prepare("SELECT `qstat` FROM `servertypes` WHERE `shorten`=? AND `resellerid`=? LIMIT 1"); $query2->execute(array($get_shorten, $reseller_id)); foreach ($query2->fetchAll(PDO::FETCH_ASSOC) as $row2) { $qstat=$row2['qstat']; if ($qstat=="a2s" or $qstat=="hla2s") { $anticheatsoft="Valve Anti Cheat"; } else if ($qstat=="cods") { $anticheatsoft="Punkbuster"; } else { $anticheatsoft=''; } if ($count>0 and ($get_shorten=="css" or $get_shorten=="cod4" or $get_shorten=="cstrike" or $get_shorten=="czero" or $get_shorten=="tf")) { $eac=''; } else { $eac=''; } } if (!isset($anticheatsoft)) { $anticheatsoft=''; } if (!isset($anticheat)) { $anticheat=''; } ?> username('gamestring','50','get') and $ui->id('id',19,'get') and ($pa['roots'] or $pa['root'])) { $sprache=getlanguagefile('roots', $user_language, $reseller_id); if ($reseller_id!=0 and $admin_id!=$reseller_id) { $reseller_id=$admin_id; } include(EASYWIDIR . '/stuff/ssh_exec.php'); include(EASYWIDIR . '/stuff/class_masterserver.php'); include(EASYWIDIR . '/stuff/keyphrasefile.php'); $rootServer=new masterServer($ui->id('id',10,'get'), $aeskey); $games=explode("_", $ui->username('gamestring','50','get')); $i=1; $gamelist=array(); $count=count($games); while ($i<$count) { if ($games[$i]!='' and !in_array($games[$i], $gamelist)) { $gamelist[]=$games[$i]; $query = $sql->prepare("SELECT `id` FROM `servertypes` WHERE `shorten`=? AND `resellerid`=? LIMIT 1"); $query->execute(array($games[$i], $reseller_id)); $typeID=$query->fetchColumn(); $rootServer->collectData($typeID,true); } $i++; } $sshcmd=$rootServer->returnCmds('install','all'); if ($rootServer->sshcmd===null) { echo 'Nothing to update/sync!'; } else { if (ssh2_execute('gs', $ui->id('id',10,'get'), $rootServer->sshcmd)===false) { echo $sprache->error_root_updatemaster." ( ".implode(", ", $gamelist)." ) ( $start )"; } else { $rootServer->setUpdating(); echo $sprache->root_updatemaster." ( ".implode(", ", $gamelist)." )"; } } } else if (($pa['voiceserver'] or $pa['voiceserver']) and $ui->st('d','get')=="vo" and $ui->id('id',19,'get')) { $sprache=getlanguagefile('voice', $user_language, $reseller_id); $query = $sql->prepare("SELECT m.`maxserver`,COUNT(v.`id`) AS `installedserver`,m.`maxslots`,SUM(v.`slots`) AS `installedslots`,SUM(v.`usedslots`) AS `uslots` FROM `voice_masterserver` m LEFT JOIN `voice_server` v ON m.`id`=v.`masterserver` WHERE m.`id`=? AND m.`resellerid`=? LIMIT 1"); $query->execute(array($ui->id('id',19,'get'), $reseller_id)); foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) { if ($row['installedserver']==null) { $installedserver='0'; } else { $installedserver=$row['installedserver']; } if ($row['installedslots']==null) { $installedslots='0'; } else { $installedslots=$row['installedslots']; } if ($row['uslots']==null) { $uslots='0'; } else { $uslots=$row['uslots']; } require_once IncludeTemplate($template_to_use,'ajax_admin_voiceserver_usage.tpl'); } } else if ($pa['gserver'] and $ui->st('d','get')!="vs" and $ui->st('d','get')!="vo" and ($ui->id('id',19,'get') or $ui->ip('ip','get'))) { $sprache=getlanguagefile('gserver', $user_language, $reseller_id); if ($reseller_id!=0 and $admin_id!=$reseller_id) { $reseller_id=$admin_id; } if ($ui->id('id',19,'get') and $ui->st('d','get')!="vs") { $used=0; $max=0; $installedserver=0; $maxserver=0; $maxslots=0; $query = $sql->prepare("SELECT `maxslots`,`maxserver` FROM `rserverdata` WHERE `id`=? AND `resellerid`=? LIMIT 1"); $query->execute(array($ui->id('id',19,'get'), $reseller_id)); foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) { $maxslots=$row['maxslots']; $maxserver=$row['maxserver']; } $query = $sql->prepare("SELECT `slots`,`queryNumplayers` FROM `gsswitch` WHERE `rootID`=? AND `resellerid`=? AND `active`='Y'"); $query->execute(array($ui->id('id',19,'get'), $reseller_id)); foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) { $used+=$row['queryNumplayers']; $max+=$row['slots']; $installedserver++; } require_once IncludeTemplate($template_to_use,'ajax_admin_gserver_usage.tpl'); } else if ($ui->ip('ip','get') and $ui->st('d','get')!="vs") { $query = $sql->prepare("SELECT `port`,`port2`,`port3`,`port4`,`port5` FROM `gsswitch` WHERE `serverip`=? AND `resellerid`=? ORDER BY `port`"); $query->execute(array($ui->ip('ip','get'), $reseller_id)); foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) { if (port($row['port'])){ $ports[]=$row['port']; } if (port($row['port2'])){ $ports[]=$row['port2']; } if (port($row['port3'])){ $ports[]=$row['port3']; } if (port($row['port4'])){ $ports[]=$row['port4']; } if (port($row['port5'])){ $ports[]=$row['port5']; } } $query = $sql->prepare("SELECT `port` FROM `voice_server` WHERE `ip`=?"); $query->execute(array($ui->ip('ip','get'))); foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) { if (port($row['port'])){ $ports[]=$row['port']; } } if (isset($ports)) { $ports=array_unique($ports); asort($ports); $ports=implode(", ", $ports); } else { $ports=''; } require_once IncludeTemplate($template_to_use,'ajax_admin_gserver_ports.tpl'); } } else if (($pa['usertickets'] or $pa['usertickets']) and $ui->port('po', 'get') and ($ui->st('d','get')=='ut' or $ui->st('d','get')=='rt')) { if ($reseller_id!=0 and $admin_id==$reseller_id and $ui->st('d','get')=='rt') { $resellerid=0; } else if ($reseller_id!=0 and $admin_id!=$reseller_id and $ui->st('d','get')=='rt') { $resellerid=$admin_id; } else if ($ui->st('d','get')=='ut' or $ui->st('d','get')=='rt') { $resellerid=$reseller_id; } $table=array(); if (isset($resellerid)) { $query = $sql->prepare("SELECT `language` FROM `settings` WHERE `resellerid`=? LIMIT 1"); $query->execute(array($resellerid)); $default_language=$query->fetchColumn(); $query = $sql->prepare("SELECT * FROM `ticket_topics` WHERE `maintopic`=? AND `maintopic`!=`id` AND `resellerid`=? ORDER BY `id`"); $query->execute(array($ui->port('po', 'get'), $resellerid)); foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) { $topic=''; $pselect3=$sql->prepare("SELECT `text` FROM `translations` WHERE `type`='ti' AND `lang`=? AND `transID`=? AND `resellerID`=? LIMIT 1"); $pselect3->execute(array($user_language, $row['id'], $resellerid)); $topic=$pselect3->fetchColumn(); if (empty($topic)) { $pselect3->execute(array($default_language, $row['id'], $resellerid)); $topic=$pselect3->fetchColumn(); } if (empty($topic)) $topic=$row['topic']; $table[]=array('id'=>$row['id'],'topic'=>$topic); } $ticketTemplate=($ui->id('r',1,'get')!=1) ? 'ajax_userpanel_ticket_category.tpl' : 'ajax_admin_reseller_ticket_category.tpl'; require_once IncludeTemplate($template_to_use, $ticketTemplate); } }