public function outros()
 {
     $tipo = TableRegistry::get("tipo_solic");
     $usuario = TableRegistry::get("usuario");
     $id = $this->request->data['idSolicitacao'];
     $alteracao = '';
     $solicitacao = $this->Solicitacao->get($id, ['contain' => []]);
     $ldap = new LDAP(3);
     //$categoria = $alteracao = 'Categoria alterada de: '.$usuario->Categoria->get($solicitacao->valorAntigo)->nomeCategoria . ' para: '.$usuario->Categoria->get($solicitacao->novoValor)->nomeCategoria;
     //$entry['smtCategoria'] = $usuario->Categoria->get($solicitacao->novoValor)->nomeCategoria;
     switch ($solicitacao->tipoSolicitacao) {
         case $tipo->find()->where(['nomeTipoSolic' => 'Troca Categoria'])->first()->idTipoSolic:
             $troca = $usuario->get($solicitacao->idUsuario);
             $troca->idCategoria = $solicitacao->novoValor;
             $usuario->save($troca);
             $alteracao = 'Categoria alterada de: ' . $usuario->Categoria->get($solicitacao->valorAntigo)->nomeCategoria . ' para: ' . $usuario->Categoria->get($solicitacao->novoValor)->nomeCategoria;
             $entry['smtCategoria'] = $usuario->Categoria->get($solicitacao->novoValor)->nomeCategoria;
             //$prof = $usuario->get($usuario->Categoria->get($solicitacao->novoValor)->professor)->login;
             $retorno = $ldap->modifyUser($troca->login, $entry);
             break;
         case $tipo->find()->where(['nomeTipoSolic' => 'Troca Projeto'])->first()->idTipoSolic:
             if ($solicitacao->valorAntigo == null) {
                 $nomeAntigo = '';
                 $grupo = null;
             } else {
                 $nomeAntigo = $usuario->Projeto->get($solicitacao->valorAntigo)->nomeProjeto;
                 $grupo = $usuario->Projeto->get($solicitacao->valorAntigo)->grupo;
             }
             $troca = $usuario->get($solicitacao->idUsuario);
             $troca->idProjeto = $solicitacao->novoValor;
             $usuario->save($troca);
             $alteracao = 'Projeto alterado de: ' . $nomeAntigo . ' para: ' . $usuario->Projeto->get($solicitacao->novoValor)->nomeProjeto;
             //$retorno = $ldap->modifyUser($troca->login,$entry);
             $retorno = $ldap->manageProjeto($troca->login, $grupo, $usuario->Projeto->get($solicitacao->novoValor)->grupo);
             $email = new Email('gmail');
             $email->from(['*****@*****.**' => 'Sistema Intranet SMT'])->to($usuario->get($usuario->Projeto->get($solicitacao->novoValor)->usuarioResponsavel)->login . '@smt.ufrj.br')->subject('Vínculo Projeto')->send('Novo Usuario vinculado a seu projeto');
             break;
         case $tipo->find()->where(['nomeTipoSolic' => 'Bloqueio'])->first()->idTipoSolic:
             $troca = $usuario->get($solicitacao->idUsuario);
             $troca->ativo = false;
             $usuario->save($troca);
             $entry['smtBool'] = 'FALSE';
             $alteracao = 'Usuário Bloqueado';
             $retorno = $ldap->modifyUser($troca->login, $entry);
             $email = new Email('gmail');
             $email->from(['*****@*****.**' => 'Sistema Intranet SMT'])->to($usuario->get($troca->profResponsavel)->login . '@smt.ufrj.br')->subject('Notificação de bloqueio')->send("Usuário {$troca->nomeUsuario} foi bloqueado no sistema");
             break;
         case $tipo->find()->where(['nomeTipoSolic' => 'Desbloqueio'])->first()->idTipoSolic:
             $troca = $usuario->get($solicitacao->idUsuario);
             $troca->ativo = true;
             $usuario->save($troca);
             $entry['smtBool'] = 'TRUE';
             $alteracao = 'Usuário Desbloqueado';
             $retorno = $ldap->modifyUser($troca->login, $entry);
             $email = new Email('gmail');
             $email->from(['*****@*****.**' => 'Sistema Intranet SMT'])->to($usuario->get($troca->profResponsavel)->login . '@smt.ufrj.br')->subject('Notificação de desbloqueio')->send("Usuário {$troca->nomeUsuario} foi desbloqueado no sistema");
             break;
         case $tipo->find()->where(['nomeTipoSolic' => 'Exclusão'])->first()->idTipoSolic:
             $troca = $usuario->get($solicitacao->idUsuario);
             $troca->historico = true;
             $retorno = $usuario->save($troca);
             if ($retorno) {
                 $brisa = new Google();
                 if (!$brisa->chamaGoogle()->verificaDisponibilidade($troca->login)) {
                     $brisa->chamaGoogle()->deletaUsuario($troca->login);
                 }
                 $ldap = new LDAP(3);
                 if (!$ldap->disponivel($troca->login)) {
                     $retorno = $ldap->removeUser($troca->login);
                 }
                 $alteracao = 'Usuário Removido';
                 $email = new Email('gmail');
                 $email->from(['*****@*****.**' => 'Sistema Intranet SMT'])->to($usuario->get($troca->profResponsavel)->login . '@smt.ufrj.br')->subject('Notificação de exclusão')->send("Aluno {$troca->nomeUsuario} foi removido do sistema");
                 $this->Flash->success(__('Usuário Removido.'));
             } else {
                 $this->Flash->error(__('Usuário não pode ser removido.'));
                 return $this->redirect(['action' => 'index']);
             }
             break;
     }
     if ($alteracao != '') {
         $auditoriaTable = TableRegistry::get("Auditoria");
         $auditoria = $auditoriaTable->newEntity();
         $auditoria->idObjeto = $solicitacao->idUsuario;
         $auditoria->objeto = 'Solicitação';
         $auditoria->acao = $alteracao;
         //$auditoria->dataAcao = (new \DateTime())->format('Y-m-d H:i:s');
         $auditoria->idUsuario = $session = $this->request->session()->read('usuario')->idUsuario;
         $auditoriaTable->save($auditoria);
     }
     $solicitacao->executor = $this->request->session()->read('usuario')->idUsuario;
     $solicitacao->executado = true;
     $this->Solicitacao->save($solicitacao);
     $this->Flash->success(__('Solicitacão Concluída.'));
     $this->set(compact('user', 'obj', 'data', 'usuario', 'solicitacao', 'categoria', 'entry'));
     return $this->redirect(['action' => 'index']);
 }
Exemple #2
0
 public function verificaDisponibilidadeImport()
 {
     $id = $this->request->query['login'];
     $this->request->allowMethod(['get', 'post', 'delete']);
     $this->autoRender = false;
     $this->layout = null;
     $ldap = new LDAP(3);
     $condicoes = array('login' => $id, 'Usuario.historico' => 0);
     $query = $this->Usuario->find('all', ['conditions' => $condicoes]);
     $number = $query->count();
     $this->response->body(json_encode(['valid' => !$ldap->disponivel($id) && $number == 0]));
 }
Exemple #3
0
 public function verificaDisponibilidade()
 {
     $nome = trim($this->request->query['nomeProjeto']);
     $this->request->allowMethod(['get', 'post', 'delete']);
     $this->autoRender = false;
     $this->layout = null;
     //$google = new Google();
     $ldap = new LDAP(3);
     //$grupo = 'grupo-' . str_replace(' ', '-', strtolower(nome));
     $user = str_replace(' ', '.', strtolower($nome));
     $this->set(compact('nome'));
     $this->response->body(json_encode(['valid' => $ldap->disponivel($user)]));
 }