<?php 
/**
 * Система управления сайтом HostCMS v. 5.xx
 * Copyright © 2005-2010 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru
 *
 * Модуль users_access.
 * 
 * Файл: /admin/users_access/users_access.php
 * 
 * @author Hostmake LLC
 * @version 5.x
 */
require_once('../../main_classes.php');

$admin = new Admin();

// Проверка авторизации пользователя.
$admin->admin_session_valid('UserAccess');

$kernel = & singleton('kernel');

// Инсталляция всех модулей ядра.
$kernel->LoadModules(!isset($_REQUEST['JsHttpRequest']));

// Инициализация CURRENT_SITE и констант.
$admin->admin_init();

$admin_forms = & singleton('admin_forms');

$user_access  = new user_access();

if (!isset($_REQUEST['JsHttpRequest']))
{
	do_html_header_admin($GLOBALS['MSG_user_access']['ua_link_users_site']);
}

// Добавление/обновление группы пользователей.
if (isset($_REQUEST['add_users_type']) || isset($_REQUEST['save_users_type']))
{
	ob_start();

	if (defined('READ_ONLY') && READ_ONLY)
	{
		$kernel->ReadMode();
	}
	else
	{
		// Добавляем информацию в БД.
		include(CMS_FOLDER . '/admin/users_access/action/add_users_type.php');
	}

	$message = ob_get_clean();

	$JsHttpRequest = new JsHttpRequest('UTF-8');

	if (isset($_REQUEST['add_users_type']))
	{
		// Отображаем список типов пользователей
		include(CMS_FOLDER . 'admin/users_access/action/load_users_type.php');
		$GLOBALS['_RESULT'] = $admin_forms->ShowForm(7, 'load_data');
		// Добавляем определенное выше сообщение
		$GLOBALS['_RESULT']['error'] = $message;
	}
	else
	{
		// Отправляем только сообщение о произведенных действиях
		$GLOBALS['_RESULT'] = array(
		'error' => $message,
		'form_html' => '',
		'title' => '');
	}

	echo $JsHttpRequest->LOADER;
	exit();
}

// Добавление/обновление информации о пользователе.
if (isset($_REQUEST['add_user']) || isset($_REQUEST['save_user']))
{
	ob_start();

	if (defined('READ_ONLY') && READ_ONLY)
	{
		$kernel->ReadMode();
	}
	else
	{
		// Добавляем информацию в БД.
		include(CMS_FOLDER . '/admin/users_access/action/add_user.php');
	}

	$message = ob_get_clean();

	$JsHttpRequest = new JsHttpRequest('UTF-8');

	if (isset($_REQUEST['add_user']))
	{
		// Отображаем форму
		include(CMS_FOLDER . 'admin/users_access/action/load_users.php');
		$GLOBALS['_RESULT'] = $admin_forms->ShowForm(8, 'load_data');
		// Добавляем определенное выше сообщение
		$GLOBALS['_RESULT']['error'] = $message;
	}
	else
	{
		// Отправляем только сообщение о произведенных действиях
		$GLOBALS['_RESULT'] = array(
		'error' => $message,
		'form_html' => '',
		'title' => '');
	}

	echo $JsHttpRequest->LOADER;
	exit();
}

// Отображение форм
switch (to_int($_REQUEST['admin_forms_id']))
{
	case 7: // Список типов (групп) пользователей
	default:
		{
			include(CMS_FOLDER . 'admin/users_access/action/load_users_type.php');
			$admin_forms->ProcessAjax(7);
			break;
		}
	case 8: // Список пользователей
		{
			include(CMS_FOLDER . 'admin/users_access/action/load_users.php');
			$admin_forms->ProcessAjax(to_int($_REQUEST['admin_forms_id']));
			break;
		}
	case 10: // Список модулей, с указанием доступности каждого из них конкретной группе пользователей
		{
			include(CMS_FOLDER . 'admin/users_access/action/load_users_type_access.php');
			$admin_forms->ProcessAjax(to_int($_REQUEST['admin_forms_id']));
			break;
		}
	case 138: // Группы пользователей - формы Центра администрирования
		{
			include(CMS_FOLDER . 'admin/users_access/action/load_users_type_avents_access_forms.php');
			$admin_forms->ProcessAjax(to_int($_REQUEST['admin_forms_id']));
			break;
		}	
	case 139: // Доступы к действиям формы Центра администрирования
		{
			include(CMS_FOLDER . 'admin/users_access/action/load_users_type_avents_access.php');
			$admin_forms->ProcessAjax(to_int($_REQUEST['admin_forms_id']));
			break;
		}
}

if (!isset($_REQUEST['JsHttpRequest']))
{
	do_html_footer_admin();
}

?>