/** * Método que verifica se o usuário logado possue alguma das permissões informadas. * Este métod apenas efetua os testes de dados carregados nas variaveis de página em um escopo global * @static * @param string|array $permissoes A permissão a ser testada ou array de permissões * @param boolean $and Define se o teste de usar "or "ou "and" para a lista de permissões informadas * @return boolean Retorna TRUE caso o usuário tenha a permissão ou FALSE caso não possua. * Para o administrador sempre retornará TRUE */ public static function checar($permissoes, $and = true) { if (!is_string($permissoes) && !Arrays::checarValores($permissoes)) { throw new Exception("O formato das permissões estão errados"); } //Testando os dados da sessão if (!isset($_SESSION[\MY_Controller::SESSION_PERMISSAO_ID])) { return false; } if (!is_array($_SESSION[\MY_Controller::SESSION_PERMISSAO_ID])) { return false; } if (!count($_SESSION[\MY_Controller::SESSION_PERMISSAO_ID])) { return false; } //Testando os dados do usuário if (!isset($_SESSION[\MY_Controller::SESSION_USUARIO_ID])) { //Caso não haja usuário logado return false; } $usuarioLogado = unserialize($_SESSION[\MY_Controller::SESSION_USUARIO_ID]); if (!$usuarioLogado instanceof \Usuario) { return false; } $perfilAtivo = (int) $usuarioLogado->get_tipoUsuarioAtivo()->get_idTipoUsuario(); if ($perfilAtivo == \Kernel\Modelo\Perfil::ADMIN) { //Caso o usuário logado seja o admin, retorna TRUE return true; } //Testando as permissões if (is_string($permissoes)) { $permissao = (bool) (isset($_SESSION[\MY_Controller::SESSION_PERMISSAO_ID][$permissoes]) ? $_SESSION[\MY_Controller::SESSION_PERMISSAO_ID][$permissoes] : false); return $permissao; } else { $qt = 0; foreach ($permissoes as $permissaoId) { $permissao = (bool) (isset($_SESSION[\MY_Controller::SESSION_PERMISSAO_ID][$permissaoId]) ? $_SESSION[\MY_Controller::SESSION_PERMISSAO_ID][$permissaoId] : false); if ($permissao) { $qt++; } } if ($and) { //Caso seja pedido o teste para todas as permissões return $qt == count($permissoes); } else { //Caso seja pedido o teste para apenas uma return $qt; } } }
/** * Metodo que retorna um candidato para os metodos de cadastro e edição. * * @param bool $isEdit Define se o metodo será usado para inclusão ou edição * * @return Candidato Um candidato com os cósidogs preenchidos */ private function getCandidato($isEdit = false) { $INT = FILTER_VALIDATE_INT; $STR = FILTER_SANITIZE_MAGIC_QUOTES; $endereco = new Endereco(); $area = new AreaInteresse(); $rg = new Rg(); $cpf = new Cpf(); $telefone = new TelFixo(); $celular = new TelCelular(); $dtNascim = new Date(); // $candidato = new Candidato(); $candidato->setNome(filter_input(INPUT_POST, 'nome', $STR)); $dtNascim->setDateBr(filter_input(INPUT_POST, 'data_nascimento', $STR)); $candidato->setDtNascimento($dtNascim); $candidato->setEstadoCivil(filter_input(INPUT_POST, 'estado_civil', $STR)); $candidato->setSexo(filter_input(INPUT_POST, 'sexo', $STR)); $rg->setNumero(filter_input(INPUT_POST, 'rg', $STR)); $rg->setOrgaoExpedidor(filter_input(INPUT_POST, 'rg_orgao', $STR)); $rg->setOrgaoUf(filter_input(INPUT_POST, 'rg_orgaoUf', $STR)); $candidato->setRg($rg); $cpf->setNumero(filter_input(INPUT_POST, 'cpf', $STR)); $candidato->setCpf($cpf); $candidato->setEmail(filter_input(INPUT_POST, 'email', $STR)); $telefone->setValue(filter_input(INPUT_POST, 'telefone', $STR)); $candidato->setTelefone($telefone); $celular->setValue(filter_input(INPUT_POST, 'celular', $STR)); $candidato->setCelular($celular); // $endereco->setCep(filter_input(INPUT_POST, 'cep', $STR)); $endereco->setLogradoro(filter_input(INPUT_POST, 'logradouro', $STR)); $endereco->setBairro(filter_input(INPUT_POST, 'bairro', $STR)); $endereco->setCidade(filter_input(INPUT_POST, 'cidade', $STR)); $endereco->setUf(filter_input(INPUT_POST, 'uf', $STR)); // $candidato->setTipoCurriculo(filter_input(INPUT_POST, 'tipo_curriculo', $INT)); $candidato->setEndereco($endereco); $candidato->setObservacoes(filter_input(INPUT_POST, 'observacoes', $STR)); $area->setId(filter_input(INPUT_POST, 'area_interesse', $INT)); $candidato->setAreaDeInteresse($area); $candidato->setObjetivoProfissional(filter_input(INPUT_POST, 'obetivo', $STR)); $candidato->setSenha(filter_input(INPUT_POST, 'senha1')); $senha2 = filter_input(INPUT_POST, 'senha2'); if ($candidato->getSenha() != md5($senha2)) { throw new BTAlentoException('As senha não conferem'); } //Preenchendo os arrays $exp = Arrays::retArray($_POST, 'exp_tipo'); $for = Arrays::retArray($_POST, 'form_tipo'); $cur = Arrays::retArray($_POST, 'curso_nome'); $idi = Arrays::retArray($_POST, 'idioma_nome'); for ($index = 0; $index < count($exp); ++$index) { $tmp = new ExpProficional(); $tmpPeriodo = new Periodo(); $tmp->setTipo($_POST['exp_tipo'][$index]); $tmp->setNome($_POST['exp_empresa'][$index]); $tmp->setCargo($_POST['exp_cargo'][$index]); $tmpPeriodo->setDeBr($_POST['exp_dt_entrada'][$index]); $tmpPeriodo->setAteBr($_POST['exp_dt_saida'][$index]); $tmp->setPeriodo($tmpPeriodo); $tmp->setAtividades($_POST['exp_atividades'][$index]); $candidato->appendExpProfissional($tmp); } for ($index = 0; $index < count($for); ++$index) { $tmp = new FormAcademica(); $tmp->setTipo($_POST['form_tipo'][$index]); $tmp->setInstituicao($_POST['form_instituicao'][$index]); $tmp->setCurso($_POST['form_curso'][$index]); $tmp->setStatus($_POST['form_status'][$index]); $tmp->setPeriodoAtual((int) $_POST['form_periodo'][$index]); $candidato->appendFormacao($tmp); } for ($index = 0; $index < count($cur); ++$index) { $tmp = new CursoComplementar(); $tmp->setConhecimento($_POST['curso_nome'][$index]); $tmp->setInstituicao($_POST['curso_instituicao'][$index]); $candidato->appendCursosCompl($tmp); } for ($index = 0; $index < count($idi); ++$index) { $tmp = new Idioma(); $tmp->setNivel($_POST['idioma_nivel'][$index]); $tmp->setNome($_POST['idioma_nome'][$index]); $tmp->setInstituicao($_POST['idioma_inistituicao'][$index]); $tmp->setIntercambioPais($_POST['idioma_intercambio'][$index]); $candidato->appendIdioma($tmp); } //Fazendo o tratametno especifico para edição if (isset($_FILES['candidato-foto'])) { $candidato->setFoto($_FILES['candidato-foto']); } return $candidato; }