2013-08-28 22:47:04 +02:00
< ? php
2013-10-16 20:59:18 +02:00
2013-08-28 22:47:04 +02:00
/**
* File : ajax . php .
* Author : Ulrich Block
* Date : 03.10 . 12
* Time : 17 : 09
* Contact : < ulrich . block @ easy - wi . com >
*
* 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 < http :// www . gnu . org / licenses />.
*
* 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 < http :// www . gnu . org / licenses />.
*/
2013-09-27 08:22:09 +02:00
define ( 'EASYWIDIR' , dirname ( __FILE__ ));
2014-03-02 10:18:25 +01:00
2014-09-14 12:43:40 +02:00
define ( 'AJAXINCLUDED' , true );
2014-03-02 10:18:25 +01:00
if ( is_dir ( EASYWIDIR . '/install' )) {
die ( 'Please remove the "install" folder' );
}
2015-02-21 12:30:08 +01:00
include ( EASYWIDIR . '/stuff/config.php' );
include ( EASYWIDIR . '/stuff/keyphrasefile.php' );
2014-02-23 13:13:48 +01:00
include ( EASYWIDIR . '/stuff/methods/functions.php' );
include ( EASYWIDIR . '/stuff/methods/class_validator.php' );
2015-02-21 12:30:08 +01:00
include ( EASYWIDIR . '/stuff/methods/class_ts3.php' );
include ( EASYWIDIR . '/stuff/methods/functions_ts3.php' );
2014-02-23 13:13:48 +01:00
include ( EASYWIDIR . '/stuff/methods/vorlage.php' );
2013-09-27 08:22:09 +02:00
include ( EASYWIDIR . '/stuff/settings.php' );
2014-03-02 10:18:25 +01:00
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 );
2013-08-28 22:47:04 +02:00
}
2014-03-02 10:18:25 +01:00
2014-08-16 16:46:12 +02:00
if ( $ui -> smallletters ( 'w' , 9 , 'get' ) == 'datatable' ) {
header ( 'Cache-Control: no-cache, must-revalidate' );
header ( 'Expires: Mon, 1 Jan 1900 00:00:00 GMT' );
header ( 'Content-type: application/json' );
$array = array ( 'iTotalRecords' => 0 , 'iTotalDisplayRecords' => 0 , 'aaData' => array ());
$iDisplayStart = ( $ui -> isinteger ( 'iDisplayStart' , 'get' )) ? $ui -> isinteger ( 'iDisplayStart' , 'get' ) : 0 ;
2014-08-30 17:55:52 +02:00
$iDisplayLength = ( $ui -> isinteger ( 'iDisplayLength' , 'get' )) ? $ui -> isinteger ( 'iDisplayLength' , 'get' ) : 10 ;
2014-08-16 16:46:12 +02:00
$iSortCol = ( $ui -> isinteger ( 'iSortCol_0' , 'get' )) ? $ui -> isinteger ( 'iSortCol_0' , 'get' ) : 0 ;
$sSortDir = ( $ui -> smallletters ( 'sSortDir_0' , 4 , 'get' ) == 'desc' ) ? 'DESC' : 'ASC' ;
$sSearch = ( strlen ( $ui -> escaped ( 'sSearch' , 'get' )) > 0 ) ? $ui -> escaped ( 'sSearch' , 'get' ) : false ;
2014-09-21 14:22:48 +02:00
// Userlog
2014-09-29 00:07:35 +02:00
if (( $ui -> smallletters ( 'd' , 7 , 'get' ) == 'userlog' and isset ( $user_id )) or ( $ui -> smallletters ( 'd' , 12 , 'get' ) == 'adminuserlog' and isset ( $admin_id )) and $pa [ 'log' ]) {
2014-09-21 14:22:48 +02:00
2014-09-29 00:07:35 +02:00
$adminLookup = ( $ui -> smallletters ( 'd' , 12 , 'get' ) == 'adminuserlog' and isset ( $admin_id )) ? true : false ;
2014-08-16 16:46:12 +02:00
2014-09-14 12:43:40 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/datatable_userlog.php' );
2014-09-13 23:29:12 +02:00
2014-09-21 18:41:13 +02:00
// Mail log
2014-09-29 00:07:35 +02:00
} else if ( $ui -> smallletters ( 'd' , 7 , 'get' ) == 'maillog' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'jobs' ]) {
2014-09-21 14:55:29 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/datatable_maillog.php' );
2014-09-21 18:41:13 +02:00
// Job log
2014-09-29 00:07:35 +02:00
} else if ( $ui -> smallletters ( 'd' , 6 , 'get' ) == 'joblog' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'jobs' ]) {
2014-09-20 21:04:33 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/datatable_joblog.php' );
2014-09-21 18:41:13 +02:00
// IP bans
2014-09-29 00:07:35 +02:00
} else if ( $ui -> smallletters ( 'd' , 6 , 'get' ) == 'ipbans' and isset ( $admin_id ) and isset ( $reseller_id ) and $reseller_id == 0 and $pa [ 'ipBans' ]) {
2014-09-21 15:38:54 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/datatable_ipbans.php' );
2014-09-21 18:41:13 +02:00
// custom module
2014-09-29 00:07:35 +02:00
} else if ( $ui -> smallletters ( 'd' , 12 , 'get' ) == 'custommodule' and isset ( $admin_id ) and isset ( $reseller_id ) and $reseller_id == 0 and $pa [ 'root' ]) {
2014-09-13 23:29:12 +02:00
2014-09-21 18:41:13 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/datatable_custommodule.php' );
// List of imported news feeds
2014-09-29 00:07:35 +02:00
} else if ( $ui -> smallletters ( 'd' , 16 , 'get' ) == 'feedsnewsentries' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'addons' ]) {
2014-09-21 18:41:13 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/datatable_feedsnewsentries.php' );
// List of feeds
2014-09-29 00:07:35 +02:00
} else if ( $ui -> smallletters ( 'd' , 5 , 'get' ) == 'feeds' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'addons' ]) {
2014-09-21 18:41:13 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/datatable_feeds.php' );
2014-09-13 23:29:12 +02:00
2014-09-21 18:41:13 +02:00
// App (GS + Tools) masterserver
2014-09-29 00:07:35 +02:00
} else if ( $ui -> smallletters ( 'd' , 15 , 'get' ) == 'appmasterserver' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'masterServer' ]) {
2014-09-13 23:29:12 +02:00
2014-09-14 12:43:40 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/datatable_appmasterserver.php' );
2014-09-13 23:29:12 +02:00
2014-09-21 18:41:13 +02:00
// GS images
2014-09-29 00:07:35 +02:00
} else if ( $ui -> smallletters ( 'd' , 10 , 'get' ) == 'gameimages' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'gimages' ]) {
2014-09-20 11:28:04 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/datatable_gameimages.php' );
2014-09-21 18:41:13 +02:00
// GS addons
2014-09-29 00:07:35 +02:00
} else if ( $ui -> smallletters ( 'd' , 16 , 'get' ) == 'gameserveraddons' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'addons' ]) {
2014-09-20 14:01:21 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/datatable_gameaddons.php' );
2014-09-21 18:41:13 +02:00
// App server
2014-09-29 00:07:35 +02:00
} else if ( $ui -> smallletters ( 'd' , 9 , 'get' ) == 'appserver' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'roots' ]) {
2014-09-20 22:17:40 +02:00
2014-09-21 18:41:13 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/datatable_appserver.php' );
2014-09-20 22:17:40 +02:00
2015-01-25 10:23:59 +01:00
// Admins, reseller and user
2015-01-10 17:13:23 +01:00
} else if ( $ui -> smallletters ( 'd' , 4 , 'get' ) == 'user' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and ( $pa [ 'user' ] or $pa [ 'user_users' ] or $pa [ 'userPassword' ])) {
require_once ( EASYWIDIR . '/stuff/ajax/datatable_user.php' );
2015-01-25 10:23:59 +01:00
// Voice master
} else if ( $ui -> smallletters ( 'd' , 17 , 'get' ) == 'voicemasterserver' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'voicemasterserver' ]) {
require_once ( EASYWIDIR . '/stuff/ajax/datatable_voicemasterserver.php' );
2015-01-25 11:57:25 +01:00
// TSDNS master
} else if ( $ui -> smallletters ( 'd' , 17 , 'get' ) == 'tsdnsmasterserver' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'voicemasterserver' ]) {
require_once ( EASYWIDIR . '/stuff/ajax/datatable_tsdnsmasterserver.php' );
2015-02-22 14:00:41 +01:00
// MySQL server
} else if ( $ui -> smallletters ( 'd' , 11 , 'get' ) == 'mysqlserver' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'mysql_settings' ]) {
require_once ( EASYWIDIR . '/stuff/ajax/datatable_mysqlserver.php' );
2015-02-26 19:07:19 +01:00
// Web master
} else if ( $ui -> smallletters ( 'd' , 15 , 'get' ) == 'webmasterserver' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'webmaster' ]) {
require_once ( EASYWIDIR . '/stuff/ajax/datatable_webmasterserver.php' );
2015-05-15 20:52:27 +02:00
// Page comments
} else if ( $ui -> smallletters ( 'd' , 12 , 'get' ) == 'pagecomments' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'cms_pages' ]) {
require_once ( EASYWIDIR . '/stuff/ajax/datatable_pagecomments.php' );
2014-09-29 00:07:35 +02:00
// Code wise it seems odd, but this way we can get plausible userIDs for following queries up front without having to repeat ourselves
2014-09-13 23:29:12 +02:00
} else {
// When searching a table combination that should provide a server and user´ s loginname, firstname, lastname. First do a search at usertable and get IDs.
// This IDs should be used for doing a `ID` IN (implode(',', $foundIDs)) as it will be faster.
2014-09-29 00:07:35 +02:00
if ( $sSearch ) {
$userIDs = array ();
$query = $sql -> prepare ( " SELECT `id`,`cname`,CONCAT(`vname`,' ',`name`) AS `full_name` FROM `userdata` WHERE `resellerid`=:reseller_id HAVING (`cname` LIKE :search OR `full_name` LIKE :search) " );
$query -> execute ( array ( ':search' => '%' . $sSearch . '%' , ':reseller_id' => $resellerLockupID ));
while ( $row = $query -> fetch ( PDO :: FETCH_ASSOC )) {
$userIDs [] = $row [ 'id' ];
}
}
if ( $ui -> smallletters ( 'd' , 10 , 'get' ) == 'gameserver' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'gserver' ]) {
require_once ( EASYWIDIR . '/stuff/ajax/datatable_gameserver.php' );
2015-02-21 12:30:08 +01:00
} else if ( $ui -> smallletters ( 'd' , 11 , 'get' ) == 'voiceserver' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'voiceserver' ]) {
2014-09-29 00:07:35 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/datatable_voiceserver.php' );
2015-02-21 12:30:08 +01:00
2015-02-21 23:03:14 +01:00
} else if ( $ui -> smallletters ( 'd' , 5 , 'get' ) == 'tsdns' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'voiceserver' ]) {
require_once ( EASYWIDIR . '/stuff/ajax/datatable_tsdns.php' );
2015-02-22 14:00:41 +01:00
} else if ( $ui -> smallletters ( 'd' , 7 , 'get' ) == 'mysqldb' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'mysql' ]) {
require_once ( EASYWIDIR . '/stuff/ajax/datatable_mysqldb.php' );
2015-03-15 10:11:00 +01:00
} else if ( $ui -> smallletters ( 'd' , 8 , 'get' ) == 'webvhost' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'webmaster' ]) {
require_once ( EASYWIDIR . '/stuff/ajax/datatable_webvhost.php' );
2014-09-29 00:07:35 +02:00
}
2014-08-16 16:46:12 +02:00
}
2014-08-17 22:33:31 +02:00
2014-08-16 16:46:12 +02:00
die ( json_encode ( $array ));
2014-09-14 16:19:57 +02:00
// App master server updates. Triggered asyncronous with ajax to avoid 5xx errors
2014-09-29 00:07:35 +02:00
} else if ( $ui -> smallletters ( 'd' , 21 , 'get' ) == 'masterappserverupdate' and isset ( $admin_id ) and isset ( $reseller_id ) and isset ( $resellerLockupID ) and $pa [ 'masterServer' ]) {
2014-09-14 16:19:57 +02:00
2014-09-14 16:28:03 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/app_master_update.php' );
die ;
2014-09-14 16:19:57 +02:00
2014-09-29 20:39:27 +02:00
} else if ( isset ( $admin_id ) and $pa [ 'gserver' ] and $ui -> smallletters ( 'd' , 14 , 'get' ) == 'appmasterusage' ) {
2014-09-29 00:07:35 +02:00
2014-09-29 20:39:27 +02:00
if ( $ui -> id ( 'id' , 10 , 'get' )) {
require_once ( EASYWIDIR . '/stuff/ajax/app_master_usage.php' );
}
2014-09-29 00:07:35 +02:00
die ;
2014-09-29 20:39:27 +02:00
} else if ( $ui -> smallletters ( 'd' , 18 , 'get' ) == 'appmasterportusage' and isset ( $admin_id ) and $pa [ 'gserver' ]) {
2014-09-29 00:07:35 +02:00
2014-09-29 20:39:27 +02:00
if ( $ui -> ip4 ( 'ip' , 'get' )) {
require_once ( EASYWIDIR . '/stuff/ajax/app_master_port_usage.php' );
}
2014-09-29 00:07:35 +02:00
die ;
} else if ( $ui -> smallletters ( 'd' , 17 , 'get' ) == 'appmasterportbest' and isset ( $admin_id ) and $pa [ 'gserver' ]) {
require_once ( EASYWIDIR . '/stuff/ajax/app_master_port_best.php' );
die ;
} else if ( $ui -> smallletters ( 'd' , 19 , 'get' ) == 'appmasterappdetails' and isset ( $admin_id ) and $pa [ 'gserver' ]) {
require_once ( EASYWIDIR . '/stuff/ajax/app_master_app_details.php' );
die ;
2015-02-21 12:30:08 +01:00
} else if ( isset ( $admin_id ) and $pa [ 'voiceserver' ] and $ui -> smallletters ( 'd' , 16 , 'get' ) == 'voicemasterusage' ) {
if ( $ui -> id ( 'id' , 10 , 'get' )) {
require_once ( EASYWIDIR . '/stuff/ajax/voice_master_usage.php' );
}
die ;
} else if ( $ui -> smallletters ( 'd' , 20 , 'get' ) == 'voicemasterportusage' and isset ( $admin_id ) and $pa [ 'voiceserver' ]) {
if ( $ui -> ip4 ( 'ip' , 'get' )) {
require_once ( EASYWIDIR . '/stuff/ajax/voice_master_port_usage.php' );
}
die ;
2015-02-21 23:03:14 +01:00
} else if ( $ui -> smallletters ( 'd' , 16 , 'get' ) == 'tsdnsmasterusage' and isset ( $admin_id ) and $pa [ 'voiceserver' ]) {
require_once ( EASYWIDIR . '/stuff/ajax/tsdns_master_usage.php' );
die ;
2015-02-22 14:00:41 +01:00
} else if ( isset ( $admin_id ) and $ui -> smallletters ( 'd' , 16 , 'get' ) == 'mysqlmasterusage' and $pa [ 'mysql' ]) {
if ( $ui -> id ( 'id' , 10 , 'get' )) {
require_once ( EASYWIDIR . '/stuff/ajax/mysql_master_usage.php' );
}
die ;
2014-08-16 16:46:12 +02:00
} else if ( isset ( $admin_id ) and $pa [ 'dedicatedServer' ] and $ui -> smallletters ( 'd' , 7 , 'get' ) == 'freeips' and $reseller_id == 0 ) {
2014-03-02 10:18:25 +01:00
if ( $ui -> id ( 'userID' , 10 , 'get' )) {
$query = $sql -> prepare ( " SELECT `resellerid` FROM `userdata` WHERE `id`=? LIMIT 1 " );
$query -> execute ( array ( $ui -> id ( 'userID' , 10 , 'get' )));
$ipsAvailable = freeips (( $query -> fetchColumn ()));
} else {
$ipsAvailable = array ();
}
2014-09-14 12:43:40 +02:00
require_once IncludeTemplate ( $template_to_use , 'ajax_admin_roots_ips.tpl' , 'ajax' );
2014-08-17 16:49:44 +02:00
die ;
2014-03-09 16:19:15 +01:00
2015-03-15 10:11:00 +01:00
} else if ( isset ( $admin_id ) and $pa [ 'fastdl' ] and $ui -> smallletters ( 'd' , 9 , 'get' ) == 'webmaster' and $ui -> id ( 'id' , 10 , 'get' )) {
2014-08-17 16:49:44 +02:00
2015-03-15 10:11:00 +01:00
require_once ( EASYWIDIR . '/stuff/ajax/web_master_usage.php' );
2014-08-17 16:49:44 +02:00
die ;
2014-03-09 16:19:15 +01:00
2015-01-18 10:02:14 +01:00
} else if ( isset ( $user_id ) and $pa [ 'usertickets' ] and $ui -> w ( 'd' , 20 , 'get' ) == 'userTicketCategories' and $ui -> id ( 'topicName' , 10 , 'get' )) {
2014-04-02 08:51:09 +02:00
2015-01-18 10:02:14 +01:00
require_once ( EASYWIDIR . '/stuff/ajax/userpanel_ticket_category.php' );
die ;
2014-04-02 08:51:09 +02:00
2015-05-03 10:52:49 +02:00
} else if ( isset ( $user_id ) and $pa [ 'usertickets' ] and $ui -> w ( 'd' , 24 , 'get' ) == 'resellerTicketCategories' and $ui -> id ( 'topicName' , 10 , 'get' )) {
require_once ( EASYWIDIR . '/stuff/ajax/reseller_ticket_category.php' );
die ;
2015-01-18 10:02:14 +01:00
} else if ( isset ( $admin_id ) and $pa [ 'voiceserverStats' ] and $ui -> w ( 'd' , 15 , 'get' ) == 'adminVoiceStats' and $ui -> st ( 'w' , 'get' )) {
2014-03-02 10:18:25 +01:00
2015-01-18 10:02:14 +01:00
require_once ( EASYWIDIR . '/stuff/ajax/admin_voice_stats.php' );
2014-08-17 22:33:31 +02:00
die ;
} else if ( isset ( $user_id ) and $pa [ 'voiceserverStats' ] and $ui -> smallletters ( 'd' , 14 , 'get' ) == 'uservoicestats' and $ui -> st ( 'w' , 'get' )) {
2014-09-14 16:28:03 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/userpanel_voice_stats.php' );
2014-08-17 22:33:31 +02:00
die ;
2015-01-18 10:02:14 +01:00
} else if ( $pa [ 'voiceserverStats' ] and (( isset ( $user_id ) and $ui -> w ( 'd' , 14 , 'get' ) == 'voiceUserStats' ) or ( isset ( $admin_id ) and $ui -> w ( 'd' , 15 , 'get' ) == 'voiceAdminStats' ))) {
2014-09-13 11:16:32 +02:00
2014-09-14 12:43:40 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/stats_voicestats.php' );
2014-09-14 16:28:03 +02:00
die ;
2014-09-13 11:16:32 +02:00
2014-08-30 11:47:54 +02:00
} else if ( isset ( $user_id ) and ( $pa [ 'gserver' ] or $pa [ 'restart' ]) and $ui -> username ( 'mapgroup' , 50 , 'get' )) {
2014-09-14 16:28:03 +02:00
require_once ( EASYWIDIR . '/stuff/ajax/userpanel_mapgroup.php' );
2014-08-17 16:49:44 +02:00
die ;
}
2014-03-02 10:18:25 +01:00
2014-09-14 12:43:40 +02:00
die ( 'No Access:' . $ui -> smallletters ( 'd' , 200 , 'get' ));