/**
  * Mostrar o formulário de inclusão e edição do registro
  *
  * @param int  $pk  ID do registro a ser selecionado
  * @param bool $mst Nome da página mestra a ser carregada
  */
 protected function mostrarForm($pk = null, $mst = null)
 {
     $inc = $this->formPadrao('grupo', 'grupos-de-usuarios/salvar', 'grupos-de-usuarios/salvar', 'admin/grupos-de-usuarios', $pk);
     # Visão
     $this->carregarHTML('comum/visoes/titulo_h2');
     $this->carregarHTML('form_grupo', $mst);
     # Sub-módulos
     $mm = new DevM\Modulo();
     $ls = $mm->listar('M.modulo_publicar = 1 AND M.modulo_pai IS NOT NULL', 'M.modulo_ordem, M.modulo_nome', 'M.modulo_id, M.modulo_pai, M.modulo_nome, M.modulo_descr, M.modulo_link');
     # Funcionalidades
     $mf = new DevM\ModuloFunc();
     $lf = $mf->listar(null, 'func_modulo, func_modulo_descr', 'func_modulo, func_modulo_id, func_modulo_descr');
     # Parâmetros
     $this->visao->adParam('sub-modulos', $ls);
     $this->visao->adParam('funcs', $lf);
     # Usuário que está logado não pode alterar as permissões do seu próprio grupo, exceção apenas para o root
     $this->visao->adParam('mostrar-perms?', $inc || ($this->modelo->id != $_SESSION['usuario_info_grupo'] || $_SESSION['usuario_id'] == -1));
     if (!$inc) {
         # Membros do grupo
         $mu = new AdminM\Usuario();
         $lu = $mu->listar("usuario_info_grupo = {$this->modelo->id}", 'usuario_info_nome', 'usuario_info_nome');
         # Parâmetros
         $this->visao->adParam('membros', $lu);
     }
     // Fim if
 }
Esempio n. 2
0
 /**
  * Recuperar senha
  *
  * Enviar um e-mail ao usuário com um link para resetar a senha
  */
 public function recuperarSenha()
 {
     $le = filter_input(INPUT_POST, 'login', FILTER_SANITIZE_STRING);
     $mu = new AdminM\Usuario();
     $lu = $mu->listar("usuario_info_login = '******' OR usuario_info_email = '{$le}'", null, 'usuario_id, usuario_info_nome, usuario_info_email', 0, 1, 0);
     if ($lu === false) {
         throw new \DL3Exception(ERRO_LOGIN_RECUPERARSENHA_USUARIO_NAO_LOCALIZADO, 1404);
     }
     // Fim if
     /*
      * Quando houver uma solicitação em aberto, expirá-la e criar uma nova
      */
     $mr_e = new LoginM\Recuperacao();
     $mr_e->selecionarUK(['usuario', 'status'], [$lu['usuario_id'], 'S']);
     if (!$mr_e->reg_vazio) {
         $mr_e->setStatus('E');
         $mr_e->salvar(true, ['recuperacao_id', 'recuperacao_status']);
     }
     // Fim if
     /*
      * Criar uma nova solicitação de recuperação de senha
      */
     $mr_s = new LoginM\Recuperacao();
     $mr_s->setStatus('S');
     $mr_s->setUsuario($lu['usuario_id']);
     $mr_s->setHash(date(\DL3::$bd_dh_formato_completo));
     $mr_s->salvar(true, ['recuperacao_status', 'recuperacao_usuario', 'recuperacao_hash']);
     # Link de recuperação da senha
     $lk = \DL3::$host_completo . "login/recuperar-senha/{$mr_s->getHash()}";
     if (!class_exists('Email')) {
         throw new \DL3Exception(ERRO_LOGIN_RECUPERARSENHA_CLASSE_ENVIO_EMAIL_NAO_LOCALIZADA, 1404);
     }
     // Fim if
     # Enviar o e-mail
     $corpo = sprintf(TXT_EMAIL_CORPO_RECUPERAR_SENHA, $lu['usuario_info_nome'], $lk, $lk);
     $obj_e = new \Email();
     $obj_e->enviar($lu['usuario_info_email'], TXT_EMAIL_ASSUNTO_RECUPERACAO_SENHA, $corpo);
     $obj_e->gravarLog(__CLASS__, 'dl_painel_usuarios_recuperacoes', $mr_s->getId(), TXT_EMAIL_ASSUNTO_RECUPERACAO_SENHA, $corpo, $lu['usuario_info_email']);
     \Funcoes::mostrarMsg(sprintf(SUCESSO_LOGIN_RECUPERARSENHA, $lu['usuario_info_email']), '-sucesso');
 }