<?php

/* DCMS Special
 * Дата последнего редактирования 18.01.2016
 * Модифицировал densnet
 */

foreach (array('start', 'compress', 'sess', 'settings', 'db_connect', 'ipua', 'fnc', 'adm_check', 'user') as $inc) {
    require_once "../sys/inc/$inc.php";
}

if (!access('user_ban_set') && !access('user_ban_set_h') && !access('user_ban_unset')) {
    header("Location: /index.php?" . SID);
    exit;
}

adm_check();

if (isset($_GET['id'])) {
    $ank['id'] = intval($_GET['id']);
} else {
    header("Location: /index.php?" . SID);
    exit;
}

$cc = $db->super_query("SELECT COUNT(*) as count FROM `user` WHERE `id` = '$ank[id]' LIMIT 1");
if ($cc['count'] == 0) {
    header("Location: /index.php?" . SID);
    exit;
}

$ank = get_user($ank['id']);
if ($user['level'] <= $ank['level']) {
    header("Location: /index.php?" . SID);
    exit;
}

$set['title'] = 'Бан пользователя ' . $ank['nick'];
require_once H . 'sys/inc/thead.php';

aut();
err();

#Навигация
echo "<div class='list-group-item-null list-group-item-grey'><small>";
echo "<a href='/' class='hint--right' data-hint='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
echo "<a href='" . DIR_PANEL . "'>" . lang('Панель управления') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
echo lang('Бан пользователя') . " $ank[nick]";
echo "</small></div><br />";

if (isset($_GET['unset']) && user_access('user_ban_unset')) {
    $bb = $db->super_query("SELECT COUNT(*) as count FROM `ban` WHERE `id_user` = '$ank[id]' AND `id` = '" . intval($_GET['unset']) . "'");
    if ($bb['count']) {
        $ban_info = $db->get_row($db->query("SELECT * FROM `ban` WHERE `id_user` = '$ank[id]' AND `id` = '" . intval($_GET['unset']) . "'"));
    }
    $ank2 = $db->get_row($db->query("SELECT * FROM `user` WHERE `id` = '$ban_info[id_ban]' LIMIT 1"));
    if (($user['level'] > $ank2['level'] || $user['id'] == $ank2['id']) || $user['level'] == 4) {
        $db->query("UPDATE `ban` SET `time` = '$time' WHERE `id` = '" . intval($_GET['unset']) . "' LIMIT 1");
        admin_log('Пользователи', 'Бан', "Снятие бана пользователя '[url=/panel/ban.php?id=$ank[id]]$ank[nick][/url]'");
        msg('Время бана обнулено');
    } else {
        $err[] = 'Нет прав';
    }
}

if (isset($_POST['ban_pr']) && isset($_POST['time']) && isset($_POST['vremja']) && (access('user_ban_set') || access('user_ban_set_h'))) {
    $timeban = $time;
    if ($_POST['vremja'] == 'min') {
        $timeban += intval($_POST['time']) * 60;
    }
    if ($_POST['vremja'] == 'chas') {
        $timeban += intval($_POST['time']) * 60 * 60;
    }
    if ($_POST['vremja'] == 'sut') {
        $timeban += intval($_POST['time']) * 60 * 60 * 24;
    }
    if ($_POST['vremja'] == 'mes') {
        $timeban += intval($_POST['time']) * 60 * 60 * 24 * 30;
    }
    if ($timeban < $time) {
        $err[] = 'Ошибка времени бана';
    }

    if (!access('user_ban_set')) {
        $timeban = min($timeban, $time + 3600 * 24);
    }

    $prich = $_POST['ban_pr'];

    if (utf8_strlen($prich) > 1024) {
        $err[] = 'Сообщение слишком длинное';
    }
    if (utf8_strlen($prich) < 10) {
        $err[] = 'Необходимо подробнее указать причину';
    }
    $prich = $db->safesql($prich);

    if (!isset($err)) {
        $db->query("INSERT INTO `ban` (`id_user`, `id_ban`, `prich`, `time`) VALUES ('$ank[id]', '$user[id]', '$prich', '$timeban')");
        admin_log('Пользователи', 'Бан', "Бан пользователя '[url=/panel/ban.php?id=$ank[id]]$ank[nick][/url]' до " . date::time($timeban) . " по причине '$prich'");
        msg('Пользователь успешно забанен');
    }
}

$k = $db->super_query("SELECT COUNT(*) as count FROM `ban` WHERE `id_user` = '$ank[id]'");
$k_post = $k['count'];
$k_page = k_page($k_post, $set['p_str']);
$page = page($k_page);
$start = $set['p_str'] * $page - $set['p_str'];

if ($k_post == 0) {
    $doc->NoResult();
}

$q = $db->query("SELECT * FROM `ban` WHERE `id_user` = '$ank[id]' ORDER BY `time` DESC LIMIT $start, $set[p_str]");
while ($post = $db->get_row($q)) {

    $ank2 = $db->get_row($db->query("SELECT * FROM `user` WHERE `id` = $post[id_ban] LIMIT 1"));
    echo "<table class='list-group-item-null' style='margin-top: 5px;margin-bottom: 5px;'><tr><td class='icon14'>";
    avatar($ank2['id'], '50', 'border-radius: 2px;');
    echo "</td><td class='null'>";
    user($ank2['id']) . ": до " . date::time($post['time']);

    echo "<br />";
    echo toOutput($post['prich']);
    if ($post['time'] > $time && access('user_ban_unset')) {
        echo "<br /><a href='?id=$ank[id]&amp;unset=$post[id]'>Снять бан</a>";
    }
    echo "</td></tr></table>\n";
    echo "<div class='hr'></div>";
}

if ($k_page > 1) {
    str('?id=' . $ank['id'] . '&amp;', $k_page, $page);
}

if (access('user_ban_set') || access('user_ban_set_h')) {
    echo "<form class='list-group-item-null' action = 'ban.php?id=$ank[id]&amp;$passgen' method = 'post'>";

    $doc->Textarea('ban_pr', 'Причина', 1024);

    echo "Время бана " . (access('user_ban_set') ? null : '(max 1 сутки)') . ":<br />";

    echo "<input id='time' name='time' length='11' type='text' value='10' class='form-control'>";

    echo "<select class='form-control' name='vremja'>";
    echo "<option value='min'>Минуты</option>\n";
    echo "<option " . (($k_post > 1) ? 'selected="selected" ' : null) . "value='chas'>Часы</option>\n";
    echo "<option value='sut'>Сутки</option>\n";
    echo "<option value='mes'" . (access('user_ban_set') ? null : ' disabled="disabled"') . ">Месяцы</option>\n";
    echo "</select><br />\n";

    echo "<button class='btn btn-success btn-sm'>Забанить</button>";
    echo "</form>\n";
} else {
    echo "<div class='alert alert-danger'>Нет прав для того, чтобы забанить пользователя</div>\n";
}

require_once H . 'sys/inc/tfoot.php';
