<?php
/*
* @package LabCMS
* @copyright (c) 2006 Alexander Levin aka Loki (loki_angel@mail.ru)
* @support http://labcms.ru
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
	$mod_template="group_edit.tpl";
	
	if ($mode=='add')
	{
		if ($_SERVER['REQUEST_METHOD']=='POST')
		{
			User::checkToken();
			if (!trim($_POST['group_name'])) LabCMS::i()->error("Название группы не может быть пустым");

			if (LabCMS::i()->no_errors)
			{
				Db::i()->query("INSERT INTO ?_groups (parent_id, group_name) VALUES(?, ?)", $_POST['parent_id'], $_POST['group_name']);
				LabCMS::i()->reset_cache('all');
				refresh();
			}
		}
		Tpl::i()->assign('select_groups', get_child_groups(0));
	}
	
	if ($mode=='edit')
	{
		if ($_SERVER['REQUEST_METHOD']=='POST')
		{
			User::checkToken();
			
			if (!trim($_POST['group_name'])) LabCMS::i()->error("Название группы не может быть пустым");
			
			if (LabCMS::i()->no_errors)
			{
				if ($_GET['var1']>2)
					Db::i()->query("UPDATE ?_groups SET parent_id=?, group_name=? WHERE group_id=?", $_POST['parent_id'], $_POST['group_name'], $_GET['var1']);
				else
					Db::i()->query("UPDATE ?_groups SET group_name=? WHERE group_id=?", $_POST['group_name'], $_GET['var1']);
	
				LabCMS::i()->reset_cache('all');
				User::setResetSession();
				refresh();
			}
		}
		Tpl::i()->assign(Db::i()->selectRow("SELECT group_id, parent_id, group_name FROM ?_groups WHERE group_id=?", $_GET['var1']));
		Tpl::i()->assign('select_groups', get_child_groups(0, $_GET['var1']));
	}
	
	if ($mode=='delete')
	{
		User::checkToken();
		if ($_GET['var1']>2)
		{
			$groups_tmp=get_child_groups($_GET['var1']);
			$groups=array($_GET['var1']);
			if (count($groups_tmp))
			foreach($groups_tmp as $group)
			{
				$groups[]=$group['group_id'];
			}
			Db::i()->query("DELETE FROM ?_groups WHERE group_id IN (?a)", $groups); //удаляем группу и подчиненные группы
			Db::i()->query("UPDATE ?_users SET group_id=2 WHERE group_id IN (?a)", $groups); //всех пользователей из удаленных групп перекидываем в дефолтную группу
		}

		LabCMS::i()->reset_cache('all');
		//обнуляем данные текущих сессий
		User::setResetSession();
		refresh();
	}
