* All rights reserved. * * This program 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. * * This program 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 this program. If not, see . * * --> NOTICE <-- * This file is part of the core development branch, changing its contents will * make you unable to use the automatic updates manager. Please refer to the * documentation for further information about customizing XNova. * */ define('INSIDE' , true); define('INSTALL' , false); define('IN_ADMIN', true); require_once dirname(dirname(__FILE__)) .'/common.php'; if (in_array($user['authlevel'], array(LEVEL_ADMIN, LEVEL_OPERATOR, LEVEL_MODERATOR))) { includeLang('admin/adminpanel'); $PanelMainTPL = gettemplate('admin/admin_panel_main'); $parse = $lang; $parse['adm_sub_form1'] = ""; $parse['adm_sub_form2'] = ""; $parse['adm_sub_form3'] = ""; // Afficher les templates if (isset($_GET['result'])) { switch ($_GET['result']){ case 'usr_search': $pattern = mysql_real_escape_string($_GET['player']); $SelUser = doquery("SELECT * FROM {{table}} WHERE `username` LIKE '%". $pattern ."%' LIMIT 1;", 'users', true); $UsrMain = doquery("SELECT `name` FROM {{table}} WHERE `id` = '". $SelUser['id_planet'] ."';", 'planets', true); $bloc = $lang; $bloc['answer1'] = $SelUser['id']; $bloc['answer2'] = $SelUser['username']; $bloc['answer3'] = $SelUser['user_lastip']; $bloc['answer4'] = $SelUser['email']; $bloc['answer5'] = $lang['adm_usr_level'][ $SelUser['authlevel'] ]; $bloc['answer6'] = $lang['adm_usr_genre'][ $SelUser['sex'] ]; $bloc['answer7'] = "[".$SelUser['id_planet']."] ".$UsrMain['name']; $bloc['answer8'] = "[".$SelUser['galaxy'].":".$SelUser['system'].":".$SelUser['planet']."] "; $SubPanelTPL = gettemplate('admin/admin_panel_asw1'); $parse['adm_sub_form2'] = parsetemplate( $SubPanelTPL, $bloc ); break; case 'usr_data': $pattern = mysql_real_escape_string($_GET['player']); $SelUser = doquery("SELECT * FROM {{table}} WHERE `username` LIKE '%". $pattern ."%' LIMIT 1;", 'users', true); $UsrMain = doquery("SELECT `name` FROM {{table}} WHERE `id` = '". $SelUser['id_planet'] ."';", 'planets', true); $bloc = $lang; $bloc['answer1'] = $SelUser['id']; $bloc['answer2'] = $SelUser['username']; $bloc['answer3'] = $SelUser['user_lastip']; $bloc['answer4'] = $SelUser['email']; $bloc['answer5'] = $lang['adm_usr_level'][ $SelUser['authlevel'] ]; $bloc['answer6'] = $lang['adm_usr_genre'][ $SelUser['sex'] ]; $bloc['answer7'] = "[".$SelUser['id_planet']."] ".$UsrMain['name']; $bloc['answer8'] = "[".$SelUser['galaxy'].":".$SelUser['system'].":".$SelUser['planet']."] "; $SubPanelTPL = gettemplate('admin/admin_panel_asw1'); $parse['adm_sub_form1'] = parsetemplate( $SubPanelTPL, $bloc ); $parse['adm_sub_form2'] = ""; $parse['adm_sub_form2'] .= ""; $UsrColo = doquery("SELECT * FROM {{table}} WHERE `id_owner` = '". $SelUser['id'] ." ORDER BY `galaxy` ASC, `planet` ASC, `system` ASC, `planet_type` ASC';", 'planets'); while ( $Colo = mysql_fetch_assoc($UsrColo) ) { if ($Colo['id'] != $SelUser['id_planet']) { $parse['adm_sub_form2'] .= ""; $parse['adm_sub_form2'] .= ""; $parse['adm_sub_form2'] .= ""; $parse['adm_sub_form2'] .= ""; } } $parse['adm_sub_form2'] .= "
".$lang['adm_colony']."
".$Colo['id']."". (($Colo['planet_type'] == 1) ? $lang['adm_planet'] : $lang['adm_moon'] ) ."[".$Colo['galaxy'].":".$Colo['system'].":".$Colo['planet']."]".$Colo['name']."
"; $parse['adm_sub_form3'] = ""; $parse['adm_sub_form3'] .= ""; for ($Item = 100; $Item <= 199; $Item++) { if ($resource[$Item] != "") { $parse['adm_sub_form3'] .= ""; $parse['adm_sub_form3'] .= ""; } } $parse['adm_sub_form3'] .= "
".$lang['adm_technos']."
".$lang['tech'][$Item]."".$SelUser[$resource[$Item]]."
"; break; case 'usr_level': if (!isset($_GET['s']) || !isset($_SESSION['CSRF']) || $_GET['s'] !== $_SESSION['CSRF']) { AdminMessage( 'One have tried to overcome administration privilleges.', 'Hacking attempt'); break; } $player = isset($_GET['player']) ? mysql_real_escape_string($_GET['player']) : ''; $level = isset($_GET['authlvl']) ? mysql_real_escape_string($_GET['authlvl']) : ''; if ($level >= $user['authlevel'] && $user['authlevel'] != LEVEL_ADMIN) { AdminMessage('Not enough privilleges to promote user.', $lang['adm_mod_level']); break; } $userData = doquery("SELECT id FROM {{table}} WHERE `username` = '".$player."';", 'users', true); if (empty($user)) { AdminMessage('No such user.', $lang['adm_mod_level']); break; } doquery("UPDATE {{table}} SET `authlevel` = '{$level}' WHERE id={$userData['id']}", 'users'); $message = $lang['adm_mess_lvl1']. " ". $player ." ".$lang['adm_mess_lvl2']; $message .= "".$lang['adm_usr_level'][$level]."!"; AdminMessage($message, $lang['adm_mod_level']); break; case 'ip_search': $pattern = isset($_GET['ip']) ? mysql_real_escape_string($_GET['ip']) : ''; $SelUser = doquery("SELECT * FROM {{table}} WHERE `user_lastip` = '". $pattern ."' LIMIT 10;", 'users'); $bloc = $lang; $bloc['adm_this_ip'] = $pattern; while ( $Usr = mysql_fetch_assoc($SelUser) ) { $UsrMain = doquery("SELECT `name` FROM {{table}} WHERE `id` = '". $Usr['id_planet'] ."';", 'planets', true); $bloc['adm_plyer_lst'] .= "".$Usr['username']."[".$Usr['galaxy'].":".$Usr['system'].":".$Usr['planet']."] ".$UsrMain['name'].""; } $SubPanelTPL = gettemplate('admin/admin_panel_asw2'); $parse['adm_sub_form2'] = parsetemplate( $SubPanelTPL, $bloc ); break; default: break; } } // Traiter les reponses aux formulaires if (isset($_GET['action'])) { $bloc = $lang; $_SESSION['CSRF'] = sha1(uniqid(null, true)); $bloc['csrf_hack'] = $_SESSION['CSRF']; switch ($_GET['action']){ case 'usr_search': $SubPanelTPL = gettemplate('admin/admin_panel_frm1'); break; case 'usr_data': $SubPanelTPL = gettemplate('admin/admin_panel_frm4'); break; case 'usr_level': for ($Lvl = 0; $Lvl < 4; $Lvl++) { $bloc['adm_level_lst'] .= ""; } $SubPanelTPL = gettemplate('admin/admin_panel_frm3'); break; case 'ip_search': $SubPanelTPL = gettemplate('admin/admin_panel_frm2'); break; default: break; } $parse['adm_sub_form2'] = parsetemplate( $SubPanelTPL, $bloc ); } $page = parsetemplate( $PanelMainTPL, $parse ); display( $page, $lang['panel_mainttl'], false, '', true ); } else { message( $lang['sys_noalloaw'], $lang['sys_noaccess'] ); }