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
 /**
  * Delete method
  *
  * @param string|null $id Usuario id.
  * @return void Redirects to index.
  * @throws \Cake\Network\Exception\NotFoundException When record not found.
  */
 public function delete($id = null)
 {
     $this->request->allowMethod(['post', 'delete', 'get']);
     $usuario = $this->Usuario->get($id);
     $temProjeto = $this->Usuario->Projeto->find('all', ['conditions' => ['usuarioResponsavel' => $id]])->count() > 0;
     if (!$temProjeto) {
         $usuario->historico = true;
         $retorno = $this->Usuario->save($usuario);
         if ($retorno) {
             $brisa = new Google();
             $brisa->chamaGoogle()->deletaUsuario($usuario->get('login'));
             $ldap = new LDAP(3);
             $retorno = $ldap->removeUser($usuario->login);
             $this->Flash->success(__('Usuario removido.'));
         } else {
             $this->Flash->error(__('Problema ao remover usuário.'));
         }
     } else {
         $this->Flash->error(__('Usuário não pode ser excluido, pois ele é responsável por projetos.'));
     }
     return $this->redirect(['action' => 'index']);
 }
Exemple #3
0
 /**
  * Delete method
  *
  * @param string|null $id Projeto id.
  * @return void Redirects to index.
  * @throws \Cake\Network\Exception\NotFoundException When record not found.
  */
 public function delete($id = null)
 {
     $this->request->allowMethod(['post', 'delete', 'get']);
     $projeto = $this->Projeto->get($id);
     $projeto->historico = true;
     $temAluno = $this->Projeto->Usuario->find('all', ['conditions' => ['usuario.idProjeto' => $id, 'usuario.historico' => 0]])->count() > 0;
     if (!$temAluno) {
         if ($this->Projeto->save($projeto)) {
             $ldap = new LDAP(3);
             if (!$ldap->disponivel($projeto->user)) {
                 $ldap->removeUser($projeto->user);
             }
             $ldap->removeGroup($projeto->grupo);
             $this->Flash->success(__('Projeto Excluido.'));
             return $this->redirect(['action' => 'index']);
         } else {
             $this->Flash->error(__('Projeto não pode ser excluído.'));
             return $this->redirect(['action' => 'index']);
         }
     } else {
         $this->Flash->error(__('Projeto não pode ser excluído pois contém alunos vinculados.'));
         return $this->redirect(['action' => 'index']);
     }
 }