コード例 #1
0
ファイル: Aluno.php プロジェクト: andersongimino/area51
 /**
  * Método que lista todos os alunos cadastrados e os retorna com todos os dados
  * @param FiltrosSistema $filtrosSistema Objeto contendo os dados para a filtragem
  * @param Kernel_Models_Usuario|NULL $usuario Objeto que permite sobrescrever o controle de acesso e listar
  * as turmas de um determinado usuário
  * @return PDOStatement|boolean Um objeto do tipo PDOStatement contendo todos os alunos ou FALSE em caso de erro
  */
 public function listarTodos(FiltrosSistema $filtrosSistema = NULL, Kernel_Models_Usuario $usuario = NULL)
 {
     //Definições padrão
     $where = "ano_mat='" . Loader::data("config", "site", "ano_letivo") . "' " . "and public.usuario_aluno.status=1 ";
     $inner = "inner join public.usuario_aluno on " . "public.usuario.pk_usuario=public.usuario_aluno.fk_usuario ";
     $inner .= "inner join public.turma on " . "public.turma.pk_turma=public.usuario_aluno.fk_turma ";
     $inner .= "inner join public.serie on " . "public.serie.pk_serie=public.turma.fk_serie ";
     //Controlle de acesso
     if (is_null($usuario)) {
         $id = $this->usuarioLogado->get_idUsuario();
         $tipo = $this->usuarioLogado->get_tipoUsuarioAtivo()->get_idTipoUsuario();
     } else {
         //Sobreescrevendo o controle de acesso
         $id = $usuario->getId();
         $tipo = $usuario->getTipo();
     }
     switch ($tipo) {
         case Kernel_Models_TiposUsuario::TIPO_COORDENADOR:
             //Coordenador(a)
             $inner .= "inner join public.turma_vin on public.turma_vin.fk_turma=pk_turma ";
             $inner .= "inner join public.coordenacao on " . "public.coordenacao.pk_coordenacao=public.turma_vin.fk_coordenacao ";
             $inner .= "inner join public.coordenacao_vin on " . "public.coordenacao_vin.fk_coordenacao=pk_coordenacao ";
             $inner .= "inner join public.usuario_tipo_vin on pk_usuario_tipo_vin=fk_usuario_tipo_vin ";
             $where .= "and public.usuario_tipo_vin.fk_usuario={$id} ";
             break;
         case Kernel_Models_TiposUsuario::TIPO_ALUNO:
             //Aluno(a)
             break;
         case Kernel_Models_TiposUsuario::TIPO_RESPONSAVEL:
             //Responsável
             $dependentes = array();
             $pers = $this->usuarioLogado->get_tipoUsuarioAtivo()->get_personalizacoes();
             foreach ($pers as $row) {
                 foreach ($row->get_dependentes() as $aluno) {
                     array_push($dependentes, $aluno->get_dep_pk_usuario_aluno());
                 }
             }
             $where .= "and pk_usuario_aluno=" . implode("or pk_usuario_aluno=", $dependentes);
             $where .= " ";
             break;
         case Kernel_Models_TiposUsuario::TIPO_PROFESSOR:
             //Professor(a)
             $where .= "and public.usuario_professor.fk_usuario={$id} ";
             $inner = "inner join public.grade on " . "public.grade.fk_turma=" . "public.turma.pk_turma ";
             $inner .= "inner join public.usuario_professor on " . "public.usuario_professor.pk_usuario_professor=" . "public.grade.fk_usuario_professor ";
             break;
         default:
             break;
     }
     //Definindo os filtros
     if ($filtrosSistema instanceof FiltrosSistema) {
         $where .= $filtrosSistema->validar(array("unidade")) ? "and fk_unidade=" . $filtrosSistema->getUnidade() . " " : "";
         $where .= $filtrosSistema->validar(array("ensino")) ? "and ensino=" . $filtrosSistema->getEnsino() . " " : "";
         $where .= $filtrosSistema->validar(array("serie")) ? "and fk_serie=" . $filtrosSistema->getSerie() . " " : "";
         $where .= $filtrosSistema->validar(array("turma")) ? "and fk_turma=" . $filtrosSistema->getTurma() . " " : "";
     }
     //Retornando os dados
     return $this->select($where, array("public.usuario.*", "public.usuario_aluno.*", "public.turma.*"), $inner, array(), array("public.usuario.pk_usuario"));
 }
コード例 #2
0
ファイル: Usuario.php プロジェクト: andersongimino/area51
 /**
  * Método que efetua o login de usuários de acordo com as querys informadas.
  * Método usado somente para login via token
  * @param strin $query A query a ser executada para o login
  * @return booeal Retorna TRUE caso tenha efetuado login ou FALSE em caso de falha
  */
 private function loginTokens($query)
 {
     $ret = FALSE;
     if (is_string($query)) {
         $busca = $this->testeExiste($query);
     } else {
         $busca = FALSE;
     }
     $busca = $this->testeExiste($query);
     if ($busca) {
         $user = $busca->fetchObject();
         $usuario = new Usuario();
         $usuario->setLoginToken(TRUE);
         $usuario->set_login($user->email);
         $usuario->set_senha($user->senha);
         $usuarioLogado = $usuario->loginUsuario(0, 0, 0, Loader::data("config", "site", "ano_letivo"));
         $sqlUsuario = new SqlUsuario();
         if ($usuarioLogado) {
             //Definindo o tipo do vinculo
             $result = $sqlUsuario->get_tipo_usuario_vin($usuarioLogado->get_idUsuario(), $user->fk_tipo_usuario);
             $pkUsuarioTipoVin = $result[0]['pk_usuario_tipo_vin'];
             foreach ($usuarioLogado->get_tipoUsuario() as $tipo) {
                 //Cria um loop com a array dos eventuais tipos de usuário que o mesmo está cadastrado
                 if ($user->fk_tipo_usuario == $tipo->get_idTipoUsuario()) {
                     //Setamos o tipo de usuário ativo
                     $usuarioLogado->set_tipoUsuarioAtivo($tipo);
                     //Seta a pk_tipo_usuario_vin
                     $usuarioLogado->set_idUsuarioTipoVin($pkUsuarioTipoVin);
                     $_SESSION['idTipoUsuario'] = $user->fk_tipo_usuario;
                     //Definindo os dados da sessão
                     $_SESSION['usuario'] = serialize($usuarioLogado);
                     unset($_SESSION['erroUsuarioSenha']);
                     $ret = $usuarioLogado;
                     break;
                 }
             }
         } else {
             $sqlUsuario->log_erro_login($user->email, "via token:" . $user->senha);
         }
     }
     return $ret;
 }
コード例 #3
0
ファイル: Professor.php プロジェクト: andersongimino/area51
 /**
  * Método que lista todos os professores de acordo com os filtros informados
  * @param FiltrosSistema $filtrosSsitema Objeto contendo os dados para filtragem
  * @param Kernel_Models_Usuario|NULL $usuario Objeto que permite sobrescrever o controle de acesso e listar
  * as turmas de um determinado usuário
  * @return PDOStatement Um objeto contendo todos os dados da resposta ou FALSE em caso de erro
  */
 public function listarTodos(FiltrosSistema $filtrosSsitema = NULL, Kernel_Models_Usuario $usuario = NULL)
 {
     $where = $inner = "";
     //Controlle de acesso
     if (is_null($usuario)) {
         $id = $this->usuarioLogado->get_idUsuario();
         $tipo = $this->usuarioLogado->get_tipoUsuarioAtivo()->get_idTipoUsuario();
     } else {
         //Sobreescrevendo o controle de acesso
         $id = $usuario->getId();
         $tipo = $usuario->getTipo();
     }
     switch ($tipo) {
         case Kernel_Models_TiposUsuario::TIPO_COORDENADOR:
             //Coordenador(a)
             $inner = "inner join public.turma_vin on public.turma_vin.fk_turma=pk_turma ";
             $inner .= "inner join public.coordenacao on " . "public.coordenacao.pk_coordenacao=public.turma_vin.fk_coordenacao ";
             $inner .= "inner join public.coordenacao_vin on " . "public.coordenacao_vin.fk_coordenacao=pk_coordenacao ";
             $inner .= "inner join public.usuario_tipo_vin on pk_usuario_tipo_vin=fk_usuario_tipo_vin ";
             $where .= "and public.usuario_tipo_vin.fk_usuario={$id} ";
             break;
         case Kernel_Models_TiposUsuario::TIPO_RESPONSAVEL:
             //Responsável
             $and = 0;
             foreach ($this->usuarioLogado->get_tipoUsuarioAtivo()->get_personalizacoes() as $row) {
                 foreach ($row->get_dependentes() as $aluno) {
                     $where .= !$and++ ? "and " : "";
                     $where .= "pk_usuario_aluno=" . $aluno->get_dep_pk_usuario_aluno() . " or ";
                 }
             }
             if (substr($where, -4) == " or ") {
                 $where = substr($where, 0, -4) . " ";
             }
             $inner .= "inner join public.usuario_aluno on " . "public.usuario_aluno.fk_turma=pk_turma ";
             break;
         case Kernel_Models_TiposUsuario::TIPO_PROFESSOR:
             //Professor(a)
             $where .= "and public.usuario_professor.fk_usuario={$id} ";
             break;
         default:
             break;
     }
     $query = "select distinct on (public.usuario.pk_usuario) * " . "from public.usuario_professor " . "inner join public.usuario on " . "public.usuario.pk_usuario=public.usuario_professor.fk_usuario " . "inner join public.grade on " . "public.grade.fk_usuario_professor=public.usuario_professor.pk_usuario_professor " . "inner join public.turma on " . "public.turma.pk_turma=public.grade.fk_turma " . "inner join public.materia_vin on " . "public.materia_vin.pk_materia_vin=public.grade.fk_materia_vin " . "inner join public.materia on " . "public.materia.pk_materia=public.materia_vin.fk_materia " . "inner join public.materia_mae on " . "public.materia.fk_materia_mae=public.materia_mae.pk_materia_mae " . "inner join public.serie on " . "public.turma.fk_serie=public.serie.pk_serie " . "{$inner} " . "where public.turma.ano='" . Loader::data("config", "site", "ano_letivo") . "' " . "and public.usuario_professor.status=1 {$where}";
     //Filtrando
     if ($filtrosSsitema instanceof FiltrosSistema) {
         $query .= $filtrosSsitema->validar(array("unidade")) ? "and public.turma.fk_unidade=" . $filtrosSsitema->getUnidade() . " " : "";
         $query .= $filtrosSsitema->validar(array("ensino")) ? "and public.serie.ensino=" . $filtrosSsitema->getEnsino() . " " : "";
         $query .= $filtrosSsitema->validar(array("serie")) ? "and public.turma.fk_serie=" . $filtrosSsitema->getSerie() . " " : "";
         $query .= $filtrosSsitema->validar(array("turma")) ? "and public.turma.pk_turma=" . $filtrosSsitema->getTurma() . " " : "";
         $query .= $filtrosSsitema->validar(array("equipe")) ? "and public.materia.fk_materia_mae=" . $filtrosSsitema->getEquipe() . " " : "";
         $query .= $filtrosSsitema->validar(array("areasDaNatureza")) ? "and public.materia_mae.area=" . $filtrosSsitema->getAreasDaNatureza() . " " : "";
         $query .= $filtrosSsitema->validar(array("buscar")) ? "and public.usuario.nome=" . $filtrosSsitema->getBuscar() . " " : "";
     }
     return $this->queryStatement($query);
 }