Exemple #1
0
 public function implementaAuditoriaUsuario($anterior, $novo)
 {
     $alteracao = '';
     $entry = array();
     $projeto = false;
     if ($anterior->nomeUsuario != $novo->nomeUsuario) {
         $alteracao .= 'Nome Alterado de: ' . $anterior->nomeUsuario . ' para: ' . $novo->nomeUsuario . '\\n';
         $entry['gecos'] = $novo->nomeUsuario;
         $entry['cn'] = $novo->nomeUsuario;
     }
     if ($anterior->email != $novo->email) {
         $alteracao .= 'E-mail Alterado de: ' . $anterior->email . ' para: ' . $novo->email . '\\n';
         $entry['mail'] = $novo->email;
     }
     if ($anterior->data_nascimento != $novo->data_nascimento) {
         $alteracao .= 'Data de Nascimento Alterada de: ' . $anterior->data_nascimento . ' para: ' . $novo->data_nascimento . '\\n';
         $dataFormatada = explode('/', $novo->data_nascimento);
         $entry['smtNascimento'] = $dataFormatada[2] . $dataFormatada[1] . $dataFormatada[0];
     }
     if ($anterior->data_exp != $novo->data_exp) {
         $alteracao .= 'Data de Expiração Alterada de: ' . $anterior->data_exp->format('d/m/Y') . ' para: ' . $novo->data_exp->format('d/m/Y') . '\\n';
         $entry['smtDataExpiracao'] = $novo->data_exp->format('Ymd');
     }
     if ($anterior->idTipoUsuario != $novo->idTipoUsuario) {
         $alteracao .= 'Perfil Alterado de: ' . $this->Usuario->TipoUsuarios->get($anterior->idTipoUsuario)->nome . ' para: ' . $this->Usuario->TipoUsuarios->get($novo->idTipoUsuario)->nome . '\\n';
     }
     if ($anterior->idProjeto != $novo->idProjeto) {
         if ($anterior->idProjeto == null) {
             $nomeAntigo = '';
             $grupo = null;
         } else {
             $nomeAntigo = $this->Usuario->Projeto->get($anterior->idProjeto)->nomeProjeto;
             $grupo = $this->Usuario->Projeto->get($anterior->idProjeto)->grupo;
         }
         $alteracao = 'Projeto alterado de: ' . $nomeAntigo . ' para: ' . $this->Usuario->Projeto->get($novo->idProjeto)->nomeProjeto . '\\n';
         $projeto = true;
     }
     if ($anterior->sexo != $novo->sexo) {
         $alteracao .= 'Sexo Alterado de: ' . $anterior->sexo . ' para: ' . $novo->sexo . '\\n';
     }
     if ($anterior->cpf != $novo->cpf) {
         $alteracao .= 'CPF Alterado de: ' . $anterior->cpf . ' para: ' . $novo->cpf . '\\n';
         $digitosCpf = array('-', '.');
         $entry['smtCPF'] = str_replace($digitosCpf, '', $novo->cpf);
     }
     if ($anterior->rg != $novo->rg) {
         $alteracao .= 'RG Alterado de: ' . $anterior->rg . ' para: ' . $novo->rg . '\\n';
         $entry['smtRG'] = $novo->rg;
     }
     if ($anterior->exp_rg != $novo->exp_rg) {
         $alteracao .= 'Órgão Expedidor Alterado de: ' . $anterior->exp_rg . ' para: ' . $novo->exp_rg . '\\n';
     }
     if ($anterior->tel_cel != $novo->tel_cel) {
         $alteracao .= 'Telefone Celular Alterado de: ' . $anterior->tel_cel . ' para: ' . $novo->tel_cel . '\\n';
         $entry['mobile'] = $novo->tel_cel;
     }
     if ($anterior->tel_fixo != $novo->tel_fixo) {
         $alteracao .= 'Telefone Fixo Alterado de: ' . $anterior->tel_fixo . ' para: ' . $novo->tel_fixo . '\\n';
         $entry['telephoneNumber'] = $novo->tel_fixo;
     }
     if ($anterior->idCategoria != $novo->idCategoria) {
         $alteracao .= 'Categoria Alterada de: ' . $this->Usuario->Categoria->get($anterior->idCategoria)->nomeCategoria . ' para: ' . $this->Usuario->Categoria->get($novo->idCategoria)->nomeCategoria . '\\n';
         $entry['smtCategoria'] = $this->Usuario->Categoria->get($novo->idCategoria)->nomeCategoria;
     }
     if ($anterior->profResponsavel != $novo->profResponsavel) {
         $alteracao .= 'Professor Responsável Alterado de: ' . $this->Usuario->get($anterior->profResponsavel)->nomeUsuario . ' para: ' . $this->Usuario->get($novo->profResponsavel)->nomeUsuario . '\\n';
         $login = $this->Usuario->get($novo->profResponsavel)->login;
         $entry['smtProfResp'] = "uid={$login},ou=usuarios,dc=smt,dc=ufrj,dc=br";
     }
     if ($anterior->logradouro != $novo->logradouro) {
         $alteracao .= 'Logradouro Alterado de: ' . $anterior->logradouro . ' para: ' . $novo->logradouro . '\\n';
         $entry['street'] = $novo->logradouro;
     }
     if ($anterior->cidade != $novo->cidade) {
         $alteracao .= 'Cidade Alterada de: ' . $anterior->cidade . ' para: ' . $novo->cidade . '\\n';
         $entry['smtCidade'] = $novo->cidade;
     }
     if ($anterior->complemento != $novo->complemento) {
         $alteracao .= 'Complemento Alterado de: ' . $anterior->complemento . ' para: ' . $novo->complemento . '\\n';
         $entry['smtComplemento'] = $novo->logradouro;
     }
     if ($anterior->estado != $novo->estado) {
         $alteracao .= 'Estado Alterado de: ' . $anterior->estado . ' para: ' . $novo->estado . '\\n';
         $entry['smtUF'] = $novo->estado;
     }
     if ($anterior->pais != $novo->pais) {
         $alteracao .= 'País Alterado de: ' . $anterior->pais . ' para: ' . $novo->pais . '\\n';
         $entry['smtPais'] = $novo->pais;
     }
     if ($anterior->bairro != $novo->bairro) {
         $alteracao .= 'Bairro Alterado de: ' . $anterior->bairro . ' para: ' . $novo->bairro . '\\n';
         $entry['smtBairro'] = $novo->bairro;
     }
     if ($anterior->codigoPostal != $novo->codigoPostal) {
         $alteracao .= 'Código Postal Alterado de: ' . $anterior->codigoPostal . ' para: ' . $novo->codigoPostal . '\\n';
         $entry['homePostalAddress'] = $novo->codigoPostal;
     }
     if ($anterior->dre != $novo->dre) {
         $alteracao .= 'DRE Alterado de: ' . $anterior->dre . ' para: ' . $novo->dre . '\\n';
         $entry['smtDre'] = $novo->estado;
     }
     if ($alteracao != '') {
         $auditoriaTable = TableRegistry::get("Auditoria");
         $auditoria = $auditoriaTable->newEntity();
         $auditoria->objeto = 'Usuario';
         $auditoria->idObjeto = $anterior->idUsuario;
         $auditoria->acao = $alteracao;
         //$auditoria->dataAcao = (new \DateTime())->format('Y-m-d H:i:s');
         $auditoria->idUsuario = $this->request->session()->read('usuario')->idUsuario;
         $auditoriaTable->save($auditoria);
         if ($projeto) {
             $ldap = new LDAP(3);
             $ldap->manageProjeto($novo->login, $grupo, $this->Usuario->Projeto->get($novo->idProjeto)->grupo);
         }
     }
     return $entry;
 }
 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']);
 }