<?php

$pasta = dirname(__FILE__) . '/../../';

require_once $pasta . 'includes/inicio.php';
require_once $pasta . 'includes/verificaSessao.php';

// Página
$direct = 'cms-user';

$retorno = '';
$result = '';

if (isset($_GET['t'])) {
    $ac = Acesso::check($direct);

    switch ($_GET['t']) {
        case 'inserir':
            if ($ac->inserir()) {
                $perfil = addslashes(trim($_POST['perfil']));
                $nome = addslashes(trim($_POST['nome']));
                $email = addslashes(trim($_POST['email']));
                $login = addslashes(trim($_POST['login']));
                $senha = addslashes(trim($_POST['senha']));

                $objUsuEmail = Usuario::buscarPeloEmail($email);

                if ($objUsuEmail) {
                    $direct = $direct . '-inserir';
                    Message::error('O e-mail informado já existe.');
                    break;
                }

                $objUsuLogin = Usuario::buscarPeloLogin($login);

                if ($objUsuLogin) {
                    $direct = $direct . '-inserir';
                    Message::error('O login informado já existe.');
                    break;
                }

                $objUsuario = new Usuario();
                $objUsuario->id = 0;
                $objUsuario->perfil = $perfil;
                $objUsuario->nome = $nome;
                $objUsuario->email = $email;
                $objUsuario->login = $login;
                $objUsuario->senha = $senha;

                $objLog = LogCMS::inserir($_SESSION['sesCMSCodigo'], 'Inseriu Usuário - ' . $nome, $_SESSION['sesCMSIP']);

                try {
                    $objUsuario->inserir();
                    Message::success('Operação realizada com sucesso.');
                } catch (BancoExcecao $ex) {
                    $direct = $direct . '-inserir';
                    Message::error($ex->getMessage());
                    exit;
                } catch (Exception $e) {
                    $direct = $direct . '-inserir';
                    Message::error($e->getMessage());
                    exit;
                }
            } else {
                Message::error('Acesso negado.');
            }
        break;

        case 'editar':
            if ($ac->editar() || $_SESSION['sesCMSCodigo'] == $_POST['id']) {
                $direct = $direct . '-editar&id=' . $_POST['id'];

                $id = trim($_POST['id']);
                $perfil = addslashes(trim($_POST['perfil']));
                $nome = addslashes(trim($_POST['nome']));
                $email = addslashes(trim($_POST['email']));
                $login = addslashes(trim($_POST['login']));
                $senha = addslashes(trim($_POST['senha']));

                $objUsuEmail = Usuario::buscarPeloEmail($email, $id);

                if ($objUsuEmail) {
                    Message::error('O e-mail informado já existe.');
                    break;
                }

                $objUsuLogin = Usuario::buscarPeloLogin($login, $id);

                if ($objUsuLogin) {
                    Message::error('O login informado já existe.');
                    break;
                }

                $objUsuario = new Usuario();
                $objUsuario->id = $id;
                $objUsuario->perfil = $perfil;
                $objUsuario->nome = $nome;
                $objUsuario->email = $email;
                $objUsuario->login = $login;
                $objUsuario->senha = $senha;

                $objLog = LogCMS::inserir($_SESSION['sesCMSCodigo'], 'Editou Usuário - ' . $nome, $_SESSION['sesCMSIP']);

                try {
                    $objUsuario->editar();
                    Message::success('Operação realizada com sucesso.');
                } catch (BancoExcecao $ex) {
                    Message::error($ex->getMessage());
                    exit;
                } catch (Exception $e) {
                    Message::error($e->getMessage());
                    exit;
                }
            } else {
                Message::error('Acesso negado.');
            }
        break;

        case 'excluir':
            if ($ac->excluir()) {
                $arrIds = (isset($_POST['id'])) ? $_POST['id'] : '';
                $arrIds = explode(',', $arrIds);

                try {
                    if (count($arrIds) > 0) {
                        foreach ($arrIds as $id) {
                            if ($_SESSION['sesCMSCodigo'] != $id) {
                                $usu = Usuario::buscar($id);
                                $excluir = Usuario::excluir($id);
                                $objLog = LogCMS::inserir($_SESSION['sesCMSCodigo'], 'Excluiu Usuário - ' . $usu->nome, $_SESSION['sesCMSIP']);
                                echo 'sucesso';
                            } else {
                                echo 'erro';
                                break;
                            }
                        }
                    }
                } catch (BancoExcecao $ex) {
                    echo 'erro';
                }
            } else {
                echo 'erro.';
            }
        break;

        case 'status':
            $usu = Usuario::buscar($_POST['id']);
            $ativo = Usuario::mudaStatus($_POST['id']);
            $msg = $ativo ? 'Ativou' : 'Desativou';
            $objLog = LogCMS::inserir($_SESSION['sesCMSCodigo'], $msg . ' Usuário - ' . $usu->nome, $_SESSION['sesCMSIP']);
            echo $ativo;
            exit;
        break;
    }
}

if (!$_GET['ajax']) {
    Util::redirect(Util::baseUrl() . 'cms/?i=' . $direct);
}
