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'));
 }
Exemple #2
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;
 }
Exemple #3
0
 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']);
 }
Exemple #5
0
 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'));
 }
Exemple #6
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)]));
 }
Exemple #7
0
 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'));
 }