<?PHP
/*
 * DIREITOS AUTORAIS RESERVADOS (C) 2007 UFRJ
 * 
 * ESTE PROGRAMA É SOFTWARE LIVRE; VOCÊ PODE REDISTRIBUÍ-LO E/OU MODIFICÁ-LO SOB OS
 * TERMOS DA LICENÇA PÚBLICA GERAL GNU CONFORME PUBLICADA PELA FREE SOFTWARE FOUNDATION;
 * TANTO A VERSÃO 2 DA LICENÇA, COMO (A SEU CRITÉRIO) QUALQUER VERSÃO POSTERIOR.

 * ESTE PROGRAMA É DISTRIBUÍDO NA EXPECTATIVA DE QUE SEJA ÚTIL, PORÉM, SEM NENHUMA GARANTIA;
 * NEM MESMO A GARANTIA IMPLÍCITA DE COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
 * CONSULTE A LICENÇA PÚBLICA GERAL DO GNU PARA MAIS DETALHES.
 * 
 * VOCÊ DEVE TER RECEBIDO UMA CÓPIA DA LICENÇA PÚBLICA GERAL DO GNU JUNTO COM ESTE PROGRAMA; 
 * SE NÃO, ACESSE <<HTTP://WWW.GNU.ORG/LICENSES/LICENSES.PT-BR.HTML>>
 */

<?
ini_set('xdebug.show_exception_trace',0);
ini_set('xdebug.remote_enable',true);
ini_set('xdebug.remote_host','127.0.0.1');
ini_set('xdebug.remote_port',9000);
ini_set('xdebug.remote_handler','dbgp');
ini_set('xdebug.remote_mode','jit');
ini_set('xdebug.idekey',666);

ini_set('xdebug.var_display_max_depth',10);
ini_set('xdebug.var_display_max_data',1024);

session_start();

header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0',false);

require_once 'autoload.php';
require_once 'config_local.php';
require_once 'versao.php';

$manager = Doctrine_Manager::getInstance();
$doc = Doctrine_Manager::connection($cfg['dburi']);

Doctrine::loadModels(dirname(__FILE__).'/classes');

if(isset($_SESSION['uid']))
	$current_user = $doc->getTable('Usuario')->find($_SESSION['uid']);
else
	$current_user = NULL;

$manager->setAttribute(Doctrine::ATTR_VALIDATE, VALIDATE_ALL);

function redirect($url, $delay=2)/*{{{*/
{
//	echo "Redirect: $url";
    echo "<meta http-equiv=REFRESH content=$delay;URL=$url />";
}/*}}}*/
function botao_voltar($back=1)/*{{{*/
{
    if(is_numeric($back))
        echo "<input type=button value=Voltar onclick='history.back(-$back)'>";
    else
        echo "<input type=button value=Voltar onclick=\"window.location.assign('$back')\">";
}/*}}}*/

function mostra_erro($str, $dest=NULL)/*{{{*/
{
	echo "<div class=dialog>
			<h1>Erro</h1>

			<div align=center class=erro>".nl2br($str)."</div>\n
			<br>";
	if($dest !== NULL)
	{
		echo "<div align=center class=acoes>";
				botao_voltar($dest?$dest:1);
			"</div>\n";
	}
	echo "</div>\n";
}/*}}}*/

function tem_permissao()/*{{{*/
{
	global $current_user;

	$perms = func_get_args();

	return isset($current_user) && in_array($current_user->idtipo, $perms);
}/*}}}*/
function checa_permissao()/*{{{*/
{
	global $current_user;

	$perms = func_get_args();

	if(!call_user_func_array('tem_permissao', $perms))
		throw new Exception('Você não tem permissão para acessar esta página');
}/*}}}*/
function garante_permissao()/*{{{*/
{
	try
	{
		$perms = func_get_args();

		call_user_func_array('checa_permissao', $perms);
	}
	catch(Exception $e)
	{
		mostra_erro($e->getMessage(), 'index.php');
		exit;
	}
}/*}}}*/

?>
