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']); }
/** * 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']); }
/** * 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']); } }