Размер файла: 7.75Kb
<?php
/**
* Управление правами доступа
*/
// Проверка прав доступа
if (!isset($user) || $user['admin_panel'] != 2 || !user_access('panel_access')) {
# Возврат на главную страницу
header('Location: /');
}
// Сохраняем права уровня
if (isset($_GET['level']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `user_level` WHERE `level` = '". num($_GET['level']) ."'"), 0) != 0 && isset($_POST['save'])) {
# Запрос для прав
$sql_access = mysql_query("SELECT * FROM `user_access` WHERE `level` = '$user[level]'");
# Цикл извлечения данных
while ($access = mysql_fetch_assoc($sql_access)) {
# Выполняем сохранение
mysql_query("UPDATE `user_access` SET `status` = '". ($_POST[$access['name']] == 2?'2':'1') ."' WHERE `level` = '". num($_GET['level']) ."' AND `name` = '$access[name]'");
}
# Шапка модуля
require_once(HOME .'/incfiles/header.php');
echo '<div class="title">Сохранение данных</div>
<div class="menu">
Данные успешно сохранены.
</div>';
echo '<div class="block">
» <a href="/panel/user_access.php?level='. num($_GET['level']) .'">Вернуться назад</a><br />
» <a href="/panel/user_access.php">Выбор уровня</a><br />
» <a href="/panel/">Панель управления</a><br />
» <a href="/">На главную</a>
</div>';
require_once(HOME .'/incfiles/footer.php');
}
if (isset($_GET['add_access']) && isset($_POST['add'])) {
# Отображаемое имя
$name_v = txt($_POST['name_v']);
# Физическое имя
$name_f = txt($_POST['name_f']);
# Проверка ввода
if (empty($name_v)) $err .= 'Не введено отображаемое имя<br />';
# Проверка длины
if (!empty($name_v) && (strlen_rus($name_v) < 3 || strlen_rus($name_v) > 256)) $err .= 'Неверная длина отображаемого имени. Допустимо от 3 до 256 символов<br />';
# Проверка занятости
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `access_name` WHERE `name` = '". input($name_v) ."'"), 0) != 0) $err .= 'Право с таким отображаемым именем уже существует.<br />';
# Проверка ввода
if (empty($name_f)) $err .= 'Не введено физическое имя<br />';
# Проверка длины
if (!empty($name_f) && (strlen($name_f) < 3 || strlen($name_f) > 256)) $err .= 'Неверная длина физического имени. Допустимо от 3 до 256 символов<br />';
# Проверка занятости
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user_access` WHERE `name` = '". input($name_f) ."'"), 0) != 0) $err .= 'Право с таким физическим именем уже существует.<br />';
if (!isset($err)) {
# Сохраняем отображаемое имя
mysql_query("INSERT INTO `access_name` SET `access` = '". input($name_f) ."', `name` = '". input($name_v) ."'");
# Запрос для прав
$sql_level = mysql_query("SELECT * FROM `user_level`");
# Цикл извлечения данных
while ($level = mysql_fetch_assoc($sql_level)) {
# Выполняем сохранение
mysql_query("INSERT INTO `user_access` SET `level` = '$level[level]', `name` = '". input($name_f) ."', `status` = '1'");
}
# Шапка модуля
require_once(HOME .'/incfiles/header.php');
echo '<div class="title">Добавление права</div>
<div class="menu">
Новое право успешно добавлено.
</div>';
echo '<div class="block">
» <a href="/panel/user_access.php">Права доступа</a><br />
» <a href="/panel/">Панель управления</a><br />
» <a href="/">На главную</a>
</div>';
require_once(HOME .'/incfiles/footer.php');
}
}
# Заголовок модуля
$system['page_title'] = 'Права доступа';
# Шапка модуля
require_once(HOME .'/incfiles/header.php');
error($err);
if (isset($_GET['add_access'])) {
echo '<div class="title">Добавление права</div>
<form method="post" action="/panel/user_access.php?add_access">
<div class="menu">
Отображаемое имя:<br />
<input type="text" name="name_v" /><br />
Физическое имя:<br />
<input type="text" name="name_f" /><br />
<input type="submit" name="add" value="Добавить" />
</div>
</form>';
echo '<div class="block">
» <a href="/panel/user_access.php">Права доступа</a><br />
» <a href="/panel/">Панель управления</a><br />
» <a href="/">На главную</a>
</div>';
# Ноги модуля
require_once(HOME .'/incfiles/footer.php');
}
// Выводим права уровня
if (isset($_GET['level']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `user_level` WHERE `level` = '". num($_GET['level']) ."'"), 0) != 0) {
echo '<div class="title">Права уровня "'. mysql_result(mysql_query("SELECT `name` FROM `user_level` WHERE `level` = '". num($_GET['level']) ."'"), 0) .'"</div>';
# Количество прав
$k_access = mysql_result(mysql_query("SELECT COUNT(*) FROM `user_access` WHERE `level` = '". num($_GET['level']) ."'"), 0);
# Старт навигации
# nav_start($k_access, 10);
# Запрос для прав
$sql_access = mysql_query("SELECT * FROM `user_access` WHERE `level` = '". num($_GET['level']) ."'");
echo '<form method="post" action="/panel/user_access.php?level='. num($_GET['level']) .'">';
# Цикл извлечения данных
while ($access = mysql_fetch_assoc($sql_access)) {
echo '<div class="menu">
<input type="checkbox" name="'. $access['name'] .'" value="2"'. ($access['status'] == 2?' checked':NULL) .' /> '. mysql_result(mysql_query("SELECT `name` FROM `access_name` WHERE `access` = '". $access['name'] ."'"), 0) .'</div>';
}
echo '<div class="menu"><input type="submit" name="save" value="Сохранить" /></div>
</form>';
# Вывод навигации
# view_nav('?level='. num($_GET['level']) .'&');
echo '<div class="block">
» <a href="/panel/user_access.php">Права доступа</a><br />
» <a href="/panel/">Панель управления</a><br />
» <a href="/">На главную</a>
</div>';
require_once(HOME .'/incfiles/footer.php');
}
echo '<div class="title">Выберите уровень</div>';
# Количество прав
$k_access = mysql_result(mysql_query("SELECT COUNT(*) FROM `user_level`"), 0);
# Старт навигации
nav_start($k_access, 10);
# Запрос для прав
$sql_access = mysql_query("SELECT * FROM `user_level` ORDER BY level ASC LIMIT $start, 10");
# Цикл извлечения данных
while ($access = mysql_fetch_assoc($sql_access)) {
echo '<div class="menu"><a href="/panel/user_access.php?level='. $access['level'] .'">'. $access['name'] .'</a></div>';
}
# Вывод навигации
view_nav();
echo '<div class="block">
» <a href="/panel/user_access.php?add_access">Добавить право</a><br />
» <a href="/panel/">Панель управления</a><br />
» <a href="/">На главную</a>
</div>';
require_once(HOME .'/incfiles/footer.php');
?>