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