<?php
/*
////////////////////////////////////////////////////////////////////////////////
// JohnCMS Content Management System //
// Официальный сайт сайт проекта: http://johncms.com //
// Дополнительный сайт поддержки: http://gazenwagen.com //
////////////////////////////////////////////////////////////////////////////////
// JohnCMS core team: //
// Евгений Рябинин aka john77 john77@gazenwagen.com //
// Олег Касьянов aka AlkatraZ alkatraz@gazenwagen.com //
// //
// Информацию о версиях смотрите в прилагаемом файле version.txt //
////////////////////////////////////////////////////////////////////////////////
*/
$headmod = 'userban';
require_once ('../incfiles/core.php');
if (!$user_id) {
require_once ('../incfiles/head.php');
display_error('Тільки для авторизованих користувачів');
require_once ('../incfiles/end.php');
}
if ($id && $id != $user_id) {
// Если был запрос на юзера, то получаем его данные
$req = mysql_query("SELECT * FROM `users` WHERE `id` = '$id' LIMIT 1"); $textl = 'Список порушень: ' . $user['name'];
}
else {
require_once ('../incfiles/head.php');
echo display_error('Такого користувача неіснує');
require_once ("../incfiles/end.php");
}
}
else {
$textl = 'Мої порушення';
$user = $datauser;
}
require_once ('../incfiles/head.php');
require_once ('../incfiles/ban.php');
$ban = isset ($_GET['ban']) ?
intval($_GET['ban']) : 0;
switch ($act) {
case 'ban' :
////////////////////////////////////////////////////////////
// Баним пользователя (добавляем Бан в базу) //
////////////////////////////////////////////////////////////
if ($rights < 1 || ($rights < 6 && $user['rights']) || ($rights <= $user['rights'])) {
echo display_error('У Вас не вистачає прав, щоб банити даного користувача');
}
elseif ($user['immunity']) {
echo display_error('Данний користувач володіє Іммунітетом, його банити неможна');
}
else {
echo '<div class="phdr"><b>Банимо користувача</b></div>';
echo '<div class="rmenu"><p>' . show_user($user, 0, 1) . '</p></div>';
if (isset ($_POST['submit'])) { $error = false;
$term = isset ($_POST['term']) ?
intval($_POST['term']) : ''; $timeval = isset ($_POST['timeval']) ?
intval($_POST['timeval']) : ''; $time = isset ($_POST['time']) ?
intval($_POST['time']) : ''; $reason = !empty ($_POST['reason']) ?
trim($_POST['reason']) : ''; $banref = isset ($_POST['banref']) ?
intval($_POST['banref']) : ''; $reason = 'Причина не вказана';
$error = 'Відсутні необхідні дані';
if ($rights == 1 && $term != 14 || $rights == 2 && $term != 12 || $rights == 3 && $term != 11 || $rights == 4 && $term != 16 || $rights == 5 && $term != 15)
$error = 'Ви немаєте права банити не всвоєму розділі';
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_ban_users` WHERE `user_id` = '$id' AND `ban_time` > '$realtime' AND `ban_type` = '$term'"), 0)) $error = 'Такий бан уже існує';
switch ($time) {
case 2 :
// Часы
if ($timeval > 24)
$timeval = 24;
$timeval = $timeval * 3600;
break;
case 3 :
// Дни
if ($timeval > 30)
$timeval = 30;
$timeval = $timeval * 86400;
break;
case 4 :
// До отмены (на 10 лет)
$timeval = 315360000;
break;
default :
// Минуты
if ($timeval > 60)
$timeval = 60;
$timeval = $timeval * 60;
}
if ($datauser['rights'] < 6 && $timeval > 86400)
$timeval = 86400;
if ($datauser['rights'] < 7 && $timeval > 2592000)
$timeval = 2592000;
if (!$error) {
// Заносим в базу
`user_id` = '$id',
`ban_time` = '" . ($realtime + $timeval) .
"',
`ban_while` = '$realtime',
`ban_type` = '$term',
`ban_who` = '$login',
echo '<div class="rmenu"><p><h3>Користувача забанено</h3></p></div>';
}
else {
echo display_error($error);
}
}
else {
// Форма параметров бана
echo '<form action="users_ban.php?act=ban&id=' . $user['id'] . '" method="post"><div class="menu"><p><h3>Тип бану</h3>';
echo '<select name="term" size="1">';
if ($rights == 2 || $rights >= 6)
echo '<option value="12">Чат</option>';
if ($rights == 3 || $rights >= 6)
echo '<option value="11">Форум</option>';
if ($rights == 1 || $rights >= 6)
echo '<option value="14">Галерея</option>';
if ($rights == 5 || $rights >= 6)
echo '<option value="15">Бібліотека</option>';
if ($rights >= 6) {
echo '<option value="13">Гостьова</option>';
echo '<option value="10">Коментарі</option>';
echo '<option value="3">Приват (антиспам)</option>';
echo '<option value="1" selected="selected">Блокування</option>';
}
echo '</select><br />';
echo '</p><p><h3>Термін бану</h3>';
echo ' <input type="text" name="timeval" size="2" maxlength="2" value="12"/> Час<br/>';
echo ' <input name="time" type="radio" value="1" /> Хвилин (60 макс.)<br />';
echo ' <input name="time" type="radio" value="2" checked="checked" /> Годин (24 макс.)<br />';
if ($rights >= 6)
echo ' <input name="time" type="radio" value="3" /> Днів (30 макс.)<br />';
if ($rights >= 7)
echo ' <input name="time" type="radio" value="4" /> <b>До відміни</b>';
echo '</p><p><h3>Причина бану</h3>';
if (isset ($_GET['fid'])) { // Если бан из форума, фиксируем ID поста
echo ' Порушення <a href="' . $home . '/forum/index.php?act=post&id=' . $fid . '">на форумі</a><br />';
echo '<input type="hidden" value="' . $fid . '" name="banref" />';
}
echo ' <textarea cols="20" rows="4" name="reason"></textarea>';
echo '</p><p><input type="submit" value="Банити" name="submit" />';
echo '</p></div></form>';
}
echo '<div class="phdr"><a href="anketa.php' . ($id ? '?id=' . $id : '') . '">В анкету</a></div>';
}
break;
case 'razban' :
////////////////////////////////////////////////////////////
// Разбаниваем пользователя (с сохранением истории) //
////////////////////////////////////////////////////////////
if (!$ban || $user['id'] == $user_id || $rights < 7)
echo display_error('Хибні дані');
else {
$req = mysql_query("SELECT * FROM `cms_ban_users` WHERE `id` = '$ban' AND `user_id` = '" . $user['id'] . "' LIMIT 1"); $error = false;
if ($res['ban_time'] < $realtime)
$error = 'Бан уже не активний';
if (!$error) {
echo '<div class="phdr"><b>Припинення дії Бану</b></div>';
echo '<div class="gmenu"><p>' . show_user($user, 0, 1) . '</p></div>';
if (isset ($_POST['submit'])) { mysql_query("UPDATE `cms_ban_users` SET `ban_time` = '$realtime' WHERE `id` = '$ban' LIMIT 1"); echo '<div class="gmenu"><p><h3>Користувач розбенений</h3></p></div>';
}
else {
echo '<form action="users_ban.php?act=razban&id=' . $user['id'] . '&ban=' . $ban . '" method="POST">';
echo '<div class="menu"><p>Припиняється дія активного бану із записом в історії порушень';
echo '</p><p><input type="submit" name="submit" value="Розбанити" />';
echo '</p></div></form>';
echo '<div class="phdr"><a href="users_ban.php?act=details&id=' . $user['id'] . '&ban=' . $ban . '">Назад</a></div>';
}
}
else {
echo display_error($error);
}
}
else {
echo display_error('Хибні дані');
}
}
break;
case 'delban' :
////////////////////////////////////////////////////////////
// Удаляем бан (с удалением записи из истории) //
////////////////////////////////////////////////////////////
if (!$ban || $rights < 9)
echo display_error('Хибні дані');
else {
$req = mysql_query("SELECT * FROM `cms_ban_users` WHERE `id` = '$ban' AND `user_id` = '" . $user['id'] . "' LIMIT 1"); echo '<div class="phdr"><b>Видалення Бану</b></div>';
echo '<div class="gmenu"><p>' . show_user($user, 0, 1) . '</p></div>';
if (isset ($_POST['submit'])) { mysql_query("DELETE FROM `cms_ban_users` WHERE `id` = '$ban' LIMIT 1"); echo '<div class="gmenu"><p><h3>Бан видалено</h3></p></div>';
}
else {
echo '<form action="users_ban.php?act=delban&id=' . $user['id'] . '&ban=' . $ban . '" method="POST">';
echo '<div class="menu"><p>Видаляється бан разом із записом в історії порушень.';
echo '</p><p><input type="submit" name="submit" value="Видалити" />';
echo '</p></div></form>';
echo '<div class="phdr"><a href="users_ban.php?act=details&id=' . $user['id'] . '&ban=' . $ban . '">Назад</a></div>';
}
}
else {
echo display_error('Хибні дані');
}
}
break;
case 'delhist' :
////////////////////////////////////////////////////////////
// Очищаем историю нарушений юзера //
////////////////////////////////////////////////////////////
if ($rights == 9) {
echo '<div class="phdr"><b>Исторія порушень</b></div>';
echo '<div class="gmenu"><p>' . show_user($user, 0, 1) . '</p></div>';
if (isset ($_POST['submit'])) { mysql_query("DELETE FROM `cms_ban_users` WHERE `user_id` = '" . $user['id'] . "'"); echo '<div class="gmenu"><h3>Исторія порушень очищена</h3></div>';
}
else {
echo '<form action="users_ban.php?act=delhist&id=' . $user['id'] . '" method="post"><div class="menu"><p>';
echo 'Ви дійсно хочете очистити всю історію порушень користувача?';
echo '</p><p><input type="submit" value="Очистити" name="submit" />';
echo '</p></div></form>';
}
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_ban_users` WHERE `user_id` = '" . $user['id'] . "'"), 0); echo '<div class="phdr">Всього порушень: ' . $total . '</div>';
echo '<p>' . ($total ? '<a href="users_ban.php?id=' . $user['id'] . '">Исторія порушень</a><br />' : '') . '<a href="../' . $admp . '/index.php?act=usr_ban">Бан панель</a></p>';
}
else {
echo display_error('Очищати історію порушень можуть тільки Супервізори');
}
break;
case 'details' :
////////////////////////////////////////////////////////////
// Детали отдельного Бана //
////////////////////////////////////////////////////////////
$req = mysql_query("SELECT * FROM `cms_ban_users` WHERE `id` = '$ban' LIMIT 1"); echo '<div class="phdr"><b>Исторія порушень</b></div>';
if ($user['id'] != $user_id)
echo '<div class="gmenu"><p>' . show_user($user, 0, ($rights >= 1 && $rights >= $user['rights'] ? 1 : 0)) . '</p></div>';
echo '<div class="' . ($res['ban_time'] > $realtime ? 'rmenu' : 'menu') . '"><p><h3>Деталі бану</h3><ul>';
if ($rights >= 1)
echo '<li><span class="gray">Забанив:</span> <b>' . $res['ban_who'] . '</b></li>';
echo '<li><span class="gray">Тип бану:</span> <b>' . $ban_term[$res['ban_type']] . '</b><br />' . $ban_desc[$res['ban_type']] . '</li>';
echo '<li><span class="gray">Коли:</span> ' . gmdate('d.m.Y, H:i:s', $res['ban_while']) . '</li>'; echo '<li><span class="gray">Термін:</span> ' . timecount($res['ban_time'] - $res['ban_while']) . '</li>';
echo '<li><span class="gray">Залишилось:</span> ' . timecount($res['ban_time'] - $realtime) . '</li>';
echo '</ul></p><p><h3>Причина Бану</h3><ul>' . smileys(checkout($res['ban_reason'], 1, 1), 1);
echo '</ul></p></div>';
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_ban_users` WHERE `user_id` = '" . $user['id'] . "'"), 0); echo '<div class="phdr">Всього порушень: ' . $total . '</div>';
echo '<p>';
if ($rights >= 7 && $res['ban_time'] > $realtime)
echo '<a href="users_ban.php?act=razban&id=' . $user['id'] . '&ban=' . $ban . '">Розбанити</a><br />';
if ($rights == 9)
echo '<a href="users_ban.php?act=delban&id=' . $user['id'] . '&ban=' . $ban . '">Видалити бан</a><br />';
echo '<a href="users_ban.php?id=' . $res['user_id'] . '">Исторія порушень</a></p>';
}
else {
echo display_error('Хибні дані');
}
break;
default :
////////////////////////////////////////////////////////////
// История нарушений //
////////////////////////////////////////////////////////////
echo '<div class="phdr"><b>Исторія порушень</b></div>';
if ($user['id'] != $user_id)
echo '<div class="gmenu"><p>' . show_user($user, 0, ($rights >= 6 ? 1 : 0)) . '</p></div>';
else
echo '<div class="gmenu"><p>Мої порушення</p></div>';
$req = mysql_query("SELECT * FROM `cms_ban_users` WHERE `user_id`='" . $user['id'] . "' ORDER BY `ban_time` DESC"); if ($total) {
echo '<div class="' . ($res['ban_time'] > $realtime ? 'rmenu' : 'menu') . '">';
echo '<a href="users_ban.php?act=details&id=' . $user['id'] . '&ban=' . $res['id'] . '">' . date("d.m.Y", $res['ban_while']) . '</a> <b>' . $ban_term[$res['ban_type']] . '</b>'; echo '</div>';
}
}
else {
echo '<div class="menu"><p>Список порожній</p></div>';
}
echo '<div class="phdr">Всього порушень: ' . $total . '</div>';
echo '<p>' . ($rights == 9 && $total ? '<a href="users_ban.php?act=delhist&id=' . $user['id'] . '">Очистити історію</a><br />' : '') . ($rights >= 6 ? '<a href="../' . $admp .
'/index.php?act=usr_ban">Бан панель</a>' : '') . '</p>';
}
require_once ('../incfiles/end.php');
?>