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