Просмотр файла modules/panel/user_access.php

Размер файла: 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">
  &raquo; <a href="/panel/user_access.php?level='. num($_GET['level']) .'">Вернуться назад</a><br />
  &raquo; <a href="/panel/user_access.php">Выбор уровня</a><br />
  &raquo; <a href="/panel/">Панель управления</a><br />
  &raquo; <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">
    &raquo; <a href="/panel/user_access.php">Права доступа</a><br />
    &raquo; <a href="/panel/">Панель управления</a><br />
    &raquo; <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">
  &raquo; <a href="/panel/user_access.php">Права доступа</a><br />
  &raquo; <a href="/panel/">Панель управления</a><br />
  &raquo; <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']) .'&amp;');
  
  echo '<div class="block">
  &raquo; <a href="/panel/user_access.php">Права доступа</a><br />
  &raquo; <a href="/panel/">Панель управления</a><br />
  &raquo; <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">
&raquo; <a href="/panel/user_access.php?add_access">Добавить право</a><br />
&raquo; <a href="/panel/">Панель управления</a><br />
&raquo; <a href="/">На главную</a>
</div>';

require_once(HOME .'/incfiles/footer.php'); 

?>