Ejemplo n.º 1
0
 public function lembrete()
 {
     $data = $this->getParametroVisao();
     $data['msg'] = $this->getMsg();
     $data['abaAtiva'] = '';
     $data['abaPage'] = 'lembrete';
     if ($data['mobile']) {
         $data['page'] = 'default_novo';
         $data['tema'] = $this->load->setTheme('responsive/limpo');
         $data['titulo'] = "ColégioGGE - Redefinir a senha";
     } else {
         $data['page'] = 'default_novo';
         $data['tema'] = $this->load->setTheme('default');
     }
     $data['largura'] = 400;
     $data['largura_percent'] = 30;
     $data['margin_top'] = 'margin_top50';
     $data['form'] = 1;
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         try {
             $data['largura_percent'] = 60;
             $data['form'] = 0;
             // verfifica se o email consta na base
             $sqlEmail = new SqlUsuario();
             $result = $sqlEmail->checa_email_lembrete($this->input->post('email'));
             if (count($result) == 1) {
                 $pk_usuario = $result[0]['pk_usuario'];
                 $tipo_usuario = '';
                 // verifica se o cadastro está habilitado
                 $sqlEmail = new SqlUsuario();
                 $result = $sqlEmail->checa_tipo_usuario_vin_lembrete($pk_usuario);
                 // verifica se tem pelo menos um tipo de usuário habilitado
                 $n_habilit_tipo_vin = 0;
                 foreach ($result as $row) {
                     if ($row['status'] == 1) {
                         $n_habilit_tipo_vin++;
                     }
                 }
                 if (count($result) != 0) {
                     if ($n_habilit_tipo_vin > 1) {
                         $status_tipo_vin_desabilitado = 0;
                         $status_tipo_desabilitado = 0;
                         $nTiposUsuarios = 0;
                         foreach ($result as $row) {
                             $sqlEmail = new SqlUsuario();
                             $result2 = $sqlEmail->checa_tipo_usuario_status($pk_usuario, $row['tabela'], 0);
                             // se o status do tipo de usuário estiver desabilitado, incrementa a variável $status_desabilitado
                             if ($result2[0]['status'] == 0) {
                                 $status_tipo_desabilitado++;
                             }
                             // se o status do vínculo de tipo de usuário estiver desabilitado, incrementa a variável $status_desabilitado
                             if ($row['status'] == 0) {
                                 $status_tipo_vin_desabilitado++;
                             }
                             $nTiposUsuarios++;
                         }
                         $sqlEmail = new SqlUsuario();
                         $result2 = $sqlEmail->checa_tipo_usuario_status($pk_usuario, $row['tabela'], 1);
                         $tipo_usuario = '<ul class="square">';
                         $tipo_usuario .= '<li>' . $row['tipo_usuario_nome'] . '</li>';
                         $tipo_usuario .= '</ul>';
                     } else {
                         $status = 0;
                         foreach ($result as $row) {
                             $tipo_usuario .= $row['tipo_usuario_nome'];
                             $sqlEmail = new SqlUsuario();
                             $result = $sqlEmail->checa_tipo_usuario_status($pk_usuario, $row['tabela'], 1);
                             $status_tipo_vin_desabilitado = $row['status'] == 0 ? 1 : 0;
                             $status_tipo_desabilitado = $result[0]['status'] == 0 ? 1 : 0;
                             $nTiposUsuarios = 1;
                         }
                     }
                 }
                 // Se o número de status desabilitados for igual ao número de permissões desabilitadas,
                 if ($status_tipo_vin_desabilitado == $nTiposUsuarios || $status_tipo_desabilitado == $nTiposUsuarios) {
                     echo 'número de status desabilitados igual ao número de permissões desabilitadas';
                 } else {
                     $codigo = Util::getRandomString(15);
                     $sqlEmail = new SqlUsuario();
                     $result = $sqlEmail->habilita_lembrete_email($pk_usuario, $codigo);
                     $mensagem = 'Prezado usuário,<br /><br />Alguém solicitou a redefinição de acesso ao site do Colégio GGE com o email "' . $this->input->post('email') . '". Caso não tenha sido você, por favor, desconsidere este email.<br />';
                     if ($nTiposUsuarios == 1) {
                         $mensagem .= 'O email informado consta no nosso sistema com a permissão de ' . $tipo_usuario . '.<br /><br />';
                     } else {
                         $mensagem .= 'O email informado consta no nosso sistema com as seguintes permissões de usuário:<br />' . $tipo_usuario . '.<br />';
                     }
                     $flag_responsavel = $this->input->post('responsavel') == 1 ? '?responsavel=1' : '';
                     $mensagem .= 'Caso deseje redefinir sua senha, clique no link abaixo:<br />';
                     $link_confirmacao = base_url() . 'usuario/login_w/lembrete_confirma/' . $pk_usuario . '/' . $codigo . $flag_responsavel;
                     $mensagem .= '<a href="' . $link_confirmacao . '">' . $link_confirmacao . '</a><br /><br />';
                     $mensagem .= '<strong>Atenção!</strong><br />Caso solicite mais de um lembrete, a última solicitação invalidará todas as demais anteriores.<br /><br />';
                     $mensagem .= 'Atenciosamente,<br />Colégio GGE';
                     $emailDestinatario = trim($this->input->post('email'));
                     $assunto = 'Redefinição de senha - Colégio GGE';
                     $headers = 'MIME-Version: 1.0' . "\r\n";
                     $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
                     $headers .= "From: Colégio GGE <*****@*****.**>" . "\r\n";
                     $enviar = mail($emailDestinatario, $assunto, $mensagem, $headers);
                     if ($enviar == 1) {
                         $data['msg'] = '<div class="alert ok">O nosso sistema enviou uma mensagem para \\"' . $emailDestinatario . '\\". Acesse seu email e localize nossa mensagem que habilita a redefinição de senha.<br /><br />
                                             <strong>Atenção!</strong><br />
                                             Normalmente a mensagem de validação chega instantaneamente. Em alguns casos, no entanto, o recebimento pode demorar minutos ou até horas, caso algum servidor de email envolvido no processo esteja instável.
                                         </div>';
                     } else {
                         $data['msg'] = '<div class="alert erro">O nosso sistema não conseguiu enviar a mensagem de validação para "' . $emailDestinatario . '". Provalmente um dos servidores de email envolvidos no processo está instável. Por favor, novamente mais tarde.</div>';
                     }
                 }
             } else {
                 $data['msg'] = '<div class="alert atencao">O email digitado (' . $this->input->post('email') . ') não consta no nosso sistema.<br />
                                     Caso você seja aluno, <a class="link" href="' . base_url() . 'usuario/aluno/cadastrar_aluno">clique aqui</a>.<br />
                                     Caso você seja pai, mãe ou responsável por um ou mais alunos, <a class="link" href="http://www.gge.com.br/web/?p=cadastro&f=pais">clique aqui</a>.<br />
                                     Caso você seja da equipe GGE, <a class="link" href="http://www.gge.com.br/web/?p=paginas&f=contato">clique aqui</a> e informe seus dados.
                                 </div>';
             }
             $this->load->view($this->load->getUrlTema(), $data);
             false;
         } catch (Exception $e) {
             $data['msg'] = '<p class="alert erro">' . $e->getMessage() . '</p>';
         }
     }
     $this->load->view($this->load->getUrlTema(), $data);
 }