public function expiracao() { $ldap = new LDAP(3); $vazio = true; $Usuario = TableRegistry::get("usuario"); $datas = array(5 => (new \DateTime('+ 5 days'))->format('Ymd'), 10 => (new \DateTime('+ 10 days'))->format('Ymd'), 20 => (new \DateTime('+ 20 days'))->format('Ymd'), 30 => (new \DateTime('+ 30 days'))->format('Ymd')); $html = ''; $usuarios = array(); $chaves = array(); foreach ($datas as $chave => $data) { $user = $ldap->getUsers("smtDataExpiracao={$data}"); if (count($user) > 1) { $vazio = false; $html .= $this->geraHtml($chave, $user); } } if ($vazio) { $html = "Não há usuários a expirar."; } $sus = $Usuario->find()->where(['usuario.idTipoUsuario' => 1]); $emails = array(); foreach ($sus as $su) { array_push($emails, $su->login . '@smt.ufrj.br'); } $email = new Email('gmail'); $email->from(['*****@*****.**' => 'Controle de Usuarios'])->emailFormat('html')->to($emails)->subject('Notificação de Usuarios a expirar')->send('Usuarios : <br><br>' . $html); $aviso = new Email('gmail'); $aviso->from(['*****@*****.**' => 'Controle de Usuarios'])->emailFormat('html')->to('*****@*****.**')->subject('JOB Realizado')->send('Job Dados Expiração executado com sucesso.'); //return $this->redirect(['action' => 'index']); $this->set(compact('datas', 'usuarios', 'chaves', 'html')); }
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 reprocessar($id = null) { $ldap = new LDAP(3); $Usuario = TableRegistry::get("usuario"); $usuarios = $Usuario->find()->where(['usuario.idUsuario' => $id]); $user = $usuarios->first(); $obj = $ldap->monta_objeto($user, true); $ldap->addUser($user->login, $obj); $this->set(compact('obj', 'user')); }
public function aprovacaoProf() { $usuario = TableRegistry::get("usuario"); $id = $this->request->data['idSolicitacao']; $alteracao = ''; $solicitacao = $this->Solicitacao->get($id, ['contain' => []]); $user = $usuario->get($solicitacao->idUsuario); $user->data_exp = $this->request->data['expiracao']; $data = trim(str_replace('00:00', '', explode('T', $user->data_exp)[0])); $ano = explode('/', $data)[2]; $dataPronta = $ano . explode('/', $data)[1] . explode('/', $data)[0]; $user->data_exp = $dataPronta; $user->ativo = true; $user->pendente = false; if ($usuario->save($user)) { $ldap = new LDAP(3); $obj['smtDataExpiracao'] = $dataPronta; $obj['smtBool'] = 'TRUE'; $retorno = $ldap->modifyUser($user->login, $obj); $solicitacao->executor = $this->request->session()->read('usuario')->idUsuario; $solicitacao->executado = true; $this->Solicitacao->save($solicitacao); } $auditoriaTable = TableRegistry::get("Auditoria"); $auditoria = $auditoriaTable->newEntity(); $auditoria->idObjeto = $solicitacao->idUsuario; $auditoria->objeto = 'Solicitação'; $auditoria->acao = 'Aprovação de Aluno pelo Professor'; //$auditoria->dataAcao = (new \DateTime())->format('Y-m-d H:i:s'); $auditoria->idUsuario = $session = $this->request->session()->read('usuario')->idUsuario; $auditoriaTable->save($auditoria); $this->Flash->success(__('Usuário Aprovado.')); $this->set(compact('user', 'obj', 'data', 'ano', 'dataPronta')); return $this->redirect(['action' => 'index']); }
public function ldap() { $ldap = new LDAP(3); $mensagem = $ldap->getUsers("(uid=*)"); $tblUsuario = TableRegistry::get("usuario"); foreach ($mensagem as $obj) { if (isset($obj["uid"])) { if (isset($obj["mail"])) { if (isset($obj["smtcategoria"])) { if (strtolower($obj['smtcategoria'][0]) != 'funcional' || strtolower($obj['smtcategoria'][0]) != 'projetos' || strtolower($obj['smtcategoria'][0]) != 'professor' || strtolower($obj['smtcategoria'][0]) != 'colaborador') { $usuario = $tblUsuario->newEntity(); $usuario->login = isset($obj['uid'][0]) ? $obj['uid'][0] : ''; $usuario->nomeUsuario = isset($obj['cn'][0]) ? $obj['cn'][0] : ''; $usuario->rg = isset($obj['smtrg'][0]) ? $obj['smtrg'][0] : ''; $usuario->cpf = isset($obj['smtcpf'][0]) ? $obj['smtcpf'][0] : ''; $usuario->email = isset($obj['mail'][0]) ? $obj['mail'][0] : ''; $usuario->tel_fixo = isset($obj['telephonenumber'][0]) ? $obj['telephonenumber'][0] : ''; $usuario->tel_cel = isset($obj['mobile'][0]) ? $obj['mobile'][0] : ''; $nascimento = isset($obj['smtnascimento'][0]) ? $obj['smtnascimento'][0] : '19000101'; $usuario->data_nascimento = substr($nascimento, 6, 2) . '/' . substr($nascimento, 4, 2) . '/' . substr($nascimento, 0, 4); $usuario->data_exp = isset($obj['smtdataexpiracao'][0]) ? $obj['smtdataexpiracao'][0] : ''; $usuario->cadastro = isset($obj['smtdatacadastro'][0]) ? $obj['smtdatacadastro'][0] : ''; $usuario->ativo = isset($obj['smtbool'][0]) ? $obj['smtbool'][0] : ''; if (isset($obj['smtcategoria'][0])) { $query = $tblUsuario->Categoria->find()->where(['nomeCategoria' => $obj['smtcategoria'][0]]); $usuario->idCategoria = $query->first()->idCategoria; // if(strtolower($obj['smtcategoria'][0]) == 'professor'){ // } // else{ // if(strtolower($obj['smtcategoria'][0]) == 'funcional'){ // $usuario->idTipoUsuario = 1; // } // else{ // $usuario->idTipoUsuario = 3; // } // } } // else{ // $usuario->idTipoUsuario = 3; // } $usuario->idTipoUsuario = 3; $usuario->idProjeto = 29; // if(isset($obj['smtgroups'])){ // foreach($obj['smtgroups'] as $grupo){ // $busca = $tblUsuario->Projeto->find('all', [ // 'conditions' => ['grupo like' => "%$grupo%"] // ]); // $number = $busca->count(); // if($number > 0){ // $proj = $tblUsuario->Projeto->find()->where(['grupo like' => "%$grupo%"]); // } // } // } $existe = $tblUsuario->find('all', ['conditions' => ['login' => $usuario->login]]); if ($existe->count() == 0) { $tblUsuario->save($usuario); } } } } } } $this->layout = 'aluno'; $this->set(compact('mensagem')); }
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)])); }
public function redefinir() { $ldap = new LDAP(3); $this->layout = false; $token = TableRegistry::get("token"); $mensagem = ''; if ($this->request->is('post')) { $senha = $this->request->data['senha']; $senha_conf = $this->request->data['confirmar']; $id = $this->request->data['token']; if ($id != '') { if ($senha == $senha_conf) { $obj = $token->get($id); $email = $obj->email; //$login = $ldap->getUsers("(uid=$email)")[0]['uid'][0]; $data['userPassword'] = '******' . $this->criptografia($senha); $ldap->modifyUser(str_replace('@smt.ufrj.br', '', $email), $data); $token->delete($obj); $mensagem = 9; } else { $mensagem = 10; $obj->id = $id; } return $this->redirect(['controller' => 'login', 'action' => 'index', $mensagem]); } } else { if (isset($this->request->query['token'])) { $hash = $this->request->query['token']; $query = $token->find('all', ['conditions' => ['token.hash' => $hash]]); $number = $query->count(); if ($number > 0) { $obj = $query->first(); } else { $mensagem = 3; return $this->redirect(['controller' => 'login', 'action' => 'index', $mensagem]); } } } $this->set(compact('obj', 'mensagem')); }