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