View file ä󿪫¬/panel/collective/group_access.php

File size: 12.12Kb
<?php
foreach (array('start', 'compress', 'sess', 'settings', 'db_connect', 'ipua', 'fnc', 'adm_check', 'user') as $inc) {
    require_once "../../sys/inc/$inc.php";
}

if (access('adm_mysql')){

$set['title'] = lang('Должности');

include_once H . 'sys/inc/thead.php';

aut();

if (isset($_GET['gid']) && $pdo->query(("SELECT COUNT(*) FROM `user_group` WHERE `id` = '" . intval($_GET['gid']) . "'"), 0)->fetchColumn() != 0) {
    #Навигация
    echo "<div class='card-header'>";
    echo "<a href='/' data-toggle='tooltip' data-placement='right' title='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='/panel/'>" . lang('Админ кабинет') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='/panel/user_group.php'>" . lang('Должности') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo $pdo->query(("SELECT `name` FROM `user_group` WHERE `id` = '" . intval($_GET['gid']) . "'"), 0);
    echo "</div>";

    echo "<div class='list-group-item list-group-item-info'>Группа: " . $pdo->query(("SELECT `name` FROM `user_group` WHERE `id` = '" . intval($_GET['gid']) . "'"), 0)->fetchColumn() . "</div>\n";

    if (intval($_GET['gid']) != $user['id'] && intval($_GET['gid']) > 1 && isset($_GET['gid']) && $pdo->query(("SELECT COUNT(*) FROM `user` WHERE `id` = '" . intval($_GET['gid']) . "' AND `group_access` = '" . intval($_GET['gid']) . "'"), 0)->fetchColumn() != 0) {
        $pdo->query("UPDATE `user` SET `group_access` = '1' WHERE `id` = '" . intval($_GET['gid']) . "' AND `group_access` < '$user[group_access]'");
    }

    $k_post = $pdo->query(("SELECT COUNT(*) FROM `user` WHERE `group_access` = '" . intval($_GET['gid']) . "'"), 0)->fetchColumn();
    $k_page = k_page($k_post, $set['p_str']);
    $page = page($k_page);
    $start = $set['p_str'] * $page - $set['p_str'];

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

    $l = $pdo->query("SELECT * FROM `user` WHERE `group_access` = '" . intval($_GET['gid']) . "' ORDER BY `id` DESC LIMIT $start, $set[p_str]");

    while ($ank = $l->fetch(PDO::FETCH_ASSOC)) {
        $ank = get_user($ank['id']);
        echo "<table class='list-group-item-komm'><tr><td class='icon14'>";
        avatar($ank['id'], '48', 'border-radius: 2px;');
        echo "</td><td class='null'>";
        echo user($ank['id']) . "\n";
        echo "<br />";
        if ($ank['group_access'] > 1 && $ank['id'] != $user['id'] && $user['group_access'] > $ank['group_access'])
            echo "<a href='?gid=" . intval($_GET['gid']) . "&zid=$ank[id]'>(снять)</a>\n";

        echo "Регистрация: " . date::time($ank['date_reg']) . "<br />\n";
        echo "Посл. посещение: " . date::time($ank['date_last']) . "<br />\n";
        echo "UA: $ank[ua]<br />\n";

        if ($ank['id'] != $user['id'] && $user['group_access'] > $ank['group_access']) {
            echo "<a href='user.php?id=$ank[id]'>Редактировать профиль</a>\n";
        }
        echo "</td></tr></table>";
    }

    if ($k_page > 1) {
        str("?gid=" . intval($_GET['id']) . "&", $k_page, $page);
    }

    include_once H . 'sys/inc/tfoot.php';
    exit;
} elseif (isset($_GET['add'])) {

    #Навигация
    echo "<div class='card-header'>";
    echo "<a href='/' data-toggle='tooltip' data-placement='right' title='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='/panel/'>" . lang('Админ кабинет') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='/panel/user_group.php'>" . lang('Должности') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo lang('Новая должность');
    echo "</div>";

    if (isset($_GET['ok'])) {
        $name = htmlspecialchars($_POST['name']);

        if (utf8_strlen($name) < 1) {
            $err[] = lang('Введите название');
        }
        if (utf8_strlen($msg_edit) > 1024) {
            $err[] = lang('Название слишком длинное');
        }


        if (!is_numeric($_POST['id'])) {
            $err[] = lang('Ошибка id');
        }
        if (!is_numeric($_POST['level'])) {
            $err[] = lang('Ошибка уровня');
        }
        if ($pdo->query(("SELECT COUNT(*) FROM `user_group` WHERE `id` = '".intval($_POST['id'])."'"), 0)->fetchColumn() != 0) {
            $err[] = lang('Должность с таким id уже есть');
        }
        if ($pdo->query(("SELECT COUNT(*) FROM `user_group` WHERE `name` = '$name'"), 0)->fetchColumn() != 0) {
            $err[] = lang('Должность с таким названием уже есть');
        }

        if (!isset($err)) {
            admin_log('Должности', 'Создание должности', "Создал(а) должность $name");
            $pdo->query("INSERT INTO `user_group` (`id`, `name`, `level`) values('".intval($_POST['id'])."', '$name', '".intval($_POST['level'])."')");
            $_SESSION['message'] = lang('Должность успешно создана');
            header("Location: ?");
        }
    }
    err();
    echo "<form method='post' action='?add&amp;ok' name='message' class='list-group-item'>\n";

    $doc->Input('name', 'Название');
    $doc->Input('id', 'ID');
    $doc->Input('level', 'Уровень');

    echo "<br />\n";
    $doc->Button('btn btn-primary btn-sm', null, 'plus', 'Добавить');
    echo "</form>\n";

    include_once H . 'sys/inc/tfoot.php';
    exit;
} elseif (isset($_GET['edit']) && $pdo->query(("SELECT COUNT(*) FROM `user_group` WHERE `id` = '" . intval($_GET['edit']) . "'"), 0)->fetchColumn() != 0) {
    $group = $pdo->query(("SELECT * FROM `user_group` WHERE `id` = '" . intval($_GET['edit']) . "' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);

        #Навигация
        echo "<div class='card-header'>";
        echo "<a href='/' data-toggle='tooltip' data-placement='right' title='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
        echo "<a href='/panel/'>" . lang('Админ кабинет') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
        echo "<a href='/panel/collective/group_access.php'>" . lang('Должности') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
        echo lang('Редактирование');
        echo "</div>";

    if (isset($_GET['ok'])) {
        $name = $_POST['name'];

        if (utf8_strlen($name) < 1) {
            $err[] = lang('Введите название');
        }
        if (utf8_strlen($msg_edit) > 1024) {
            $err[] = lang('Название слишком длинное');
        }
        $name = htmlspecialchars($name);
        if (!is_numeric($_POST['id'])) {
            $err[] = lang('Ошибка id');
        }
        if (!is_numeric($_POST['level'])) {
            $err[] = lang('Ошибка уровня');
        }
        $group_id = $pdo->query(("SELECT * FROM `user_group` WHERE `id` = '$_POST[id]' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
        if ($pdo->query(("SELECT COUNT(*) FROM `user_group` WHERE `id` = '" . intval($_POST['id']) . "' AND `id` != '$group[id]'"), 0)->fetchColumn() != 0) {
            $err[] = lang('Должность с таким id уже есть');
        }
        $group_name = $pdo->query(("SELECT * FROM `user_group` WHERE `name` = '$name' AND `id` = '$group[id]' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
        if ($pdo->query(("SELECT COUNT(*) FROM `user_group` WHERE `name` = '$name'"), 0)->fetchColumn() != 0 && $group_name['name'] != $group['name']) {
            $err[] = lang('Должность с таким названием уже есть');
        }
        if (!isset($err)) {
            admin_log('Должности', 'Редактирование должности', "Переименована должность $group[name] в $name");
            $pdo->query("UPDATE `user_group` SET `name` = '$name', `id` = '" . intval($_POST['id']) . "', `level` = '" . intval($_POST['level']) . "' WHERE `id` = '$group[id]' LIMIT 1");
            $_SESSION['message'] = lang('Изменения сохранены');
            header("Location: ?");
        }
    }
    err();

    echo "<form method='post' action='?edit=$group[id]&amp;ok' name='message' class='list-group-item'>\n";

    $doc->Input('name', 'Название', 50, "" . htmlspecialchars($group['name']) . "");
    $doc->Input('id', 'ID', 2, "" . intval($group['id']) . "");
    $doc->Input('level', 'Уровень', 1, "" . intval($group['level']) . "");

    echo "<br />\n";
    $doc->Button('btn btn-success btn-sm', null, 'save', 'Сохранить');
    echo "</form>\n";

    include_once H . 'sys/inc/tfoot.php';
    exit;
} elseif (isset($_GET['del']) && $pdo->query(("SELECT COUNT(*) FROM `user_group` WHERE `id` = '" . intval($_GET['del']) . "' LIMIT 1"), 0)->fetchColumn() != 0) {
    if (isset($_GET['ok'])) {
        $group = $pdo->query(("SELECT * FROM `user_group` WHERE `id` = '" . intval($_GET['del']) . "' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
        admin_log('Должности', 'Удаление должности', "Удалил(а) должность $group[name]");
        $pdo->query("DELETE FROM `user_group` WHERE `id` = '" . intval($_GET['del']) . "' LIMIT 1");
        header("Location: ?");
    } else {
        #Навигация
        echo "<div class='card-header'>";
        echo "<a href='/' data-toggle='tooltip' data-placement='right' title='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
        echo "<a href='/panel/'>" . lang('Админ кабинет') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
        echo "<a href='/panel/collective/group_access.php'>" . lang('Должности') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
        echo lang('Удаление');
        echo "</div>";

        echo "<div class='list-group-item'>\n";
        echo "Вы действительно хотите удалить эту должность?<br/>";
        echo "<a href='?del=" . intval($_GET['del']) . "&amp;ok' class='btn btn-success btn-sm'>Да</a> <a href='?' class='btn btn-secondary btn-sm'>Нет</a>";
        echo "</div>";
    }
    include_once H . 'sys/inc/tfoot.php';
    exit;
}

#Навигация
echo "<div class='card-header'>";
echo "<a href='/' data-toggle='tooltip' data-placement='right' title='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
echo "<a href='/panel/'>" . lang('Админ кабинет') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
echo lang('Должности');
echo "</div>";

echo "<a href='?add' class='list-group-item list-group-item-info'><i class='fa fa-plus fa-fw'></i> " . lang('Добавить новую должность') . "</a>";

$l = $pdo->query("SELECT * FROM `user_group`");
if ($pdo->query(("SELECT COUNT(*) FROM `user_group`"), 0)->fetchColumn() == 0) {
    $doc->NoResult();
}

while ($list = $l->fetch(PDO::FETCH_ASSOC)) {
    echo "<div class='list-group-item'>\n";
    echo "<a href='?gid=$list[id]'><i class='fa fa-crop fa-fw'></i> " . htmlspecialchars($list['name']) . "</a> <span class='label label-pill label-info'>" . intval($list['id']) . " / " . intval($list['level']) . "</span>\n";
    echo "<span style='float:right'>\n";
    echo "<a class='btn btn-secondary btn-sm hint--left' href='?edit=$list[id]' data-hint='" . lang('Редактировать') . "'><i class='fa fa-edit fa-fw'></i></a> ";
    echo "<a class='btn btn-secondary btn-sm hint--left' href='?del=$list[id]' data-hint='" . lang('Удалить') . "'><i class='fa fa-trash-o fa-fw'></i></a>\n";
    echo "</span>";
    echo "</div>\n";
}

}else{
header('location: /index.php');
$_SESSION['err'] = 'Ошибка доступа';
}

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