/** * Mostrar o formulário de inclusão e edição do registro * * @param int $pk PK do registro a ser selecionado * @param string $rd URL para onde será redirecionado depois do salvamento do registro */ protected function mostrarForm($pk = null, $rd = 'admin/usuarios') { $inc = $this->formPadrao('usuario', 'usuarios/salvar', 'usuarios/salvar', empty($rd) ? 'admin/usuarios' : $rd, $pk); # Visão $this->carregarHTML('comum/visoes/titulo_h2'); $this->carregarHTML('form_usuario'); $m_gu = new AdminM\GrupoUsuario(); $l_gu = $m_gu->carregarSelect('grupo_usuario_publicar = 1', false); $m_id = new DevM\Idioma(); $l_id = $m_id->carregarSelect('idioma_publicar = 1', false); $m_te = new DevM\Tema(); $l_te = $m_te->listar('tema_publicar = 1', 'tema_descr', 'tema_id AS VALOR, tema_descr AS TEXTO, tema_padrao'); $m_fd = new DevM\FormatoData(); $l_fd = $m_fd->carregarSelect('formato_data_publicar = 1', false); if (!$inc) { # Grupo de usuário $mgu = new AdminM\GrupoUsuario($this->modelo->info_grupo); $this->visao->adParam('grupo-descr', $mgu->getDescr()); } // Fim if( !$inc ) # Parâmetros $this->visao->adParam('grupos-usuarios', $l_gu); $this->visao->adParam('idiomas', $l_id); $this->visao->adParam('temas', $l_te); $this->visao->adParam('formatos-data', $l_fd); $this->visao->adParam('novo-idioma?', \DL3::$autent->verificarPerm('Desenvolvedor\\Controle\\Idioma', 'mostrarForm')); $this->visao->adParam('novo-tema?', \DL3::$autent->verificarPerm('Desenvolvedor\\Controle\\Tema', 'mostrarForm')); $this->visao->adParam('novo-grupo?', \DL3::$autent->verificarPerm('Admin\\Controle\\GrupoUsuario', 'mostrarForm')); $this->visao->adParam('msg-usuario-bloq?', !$inc && $this->modelo->conf_bloq); $this->visao->adParam('usuario-logado?', $this->modelo->id == $_SESSION['usuario_id']); }
/** * Mostrar o formulário de inclusão e edição do registro * * @param int|null $md ID do módulo dessa funcionalidade * @param bool|null $mst Nome da página mestra a ser carregada * @param int|null $pk Valor da PK do registro a ser selecionado */ protected function mostrarForm($pk = null, $md = null, $mst = null) { $inc = $this->formPadrao('func', 'modulos/funcionalidades/salvar', 'modulos/funcionalidades/salvar', null, $pk); # Visão $this->carregarHTML('comum/visoes/titulo_h2'); $this->carregarHTML('form_funcs', $mst); $this->visao->setTitulo($inc ? sprintf(TXT_PAGINA_TITULO_CADASTRAR_NOVA, $this->nome) : sprintf(TXT_PAGINA_TITULO_EDITAR_ESSA, $this->nome)); # Grupos de usuários $mgu = new AdminM\GrupoUsuario(); $lgu = $mgu->carregarSelect('grupo_usuario_publicar = 1', false); # Parâmetros $this->visao->adParam('grupos', $lgu); $this->visao->adParam('modulo', $md); if ($inc) { # Módulos $mf = new DevM\Modulo($md); $this->modelo->setClasse($mf->nomeClasse()); $this->visao->adParam('modulo-classe', $this->modelo->getClasse()); } // Fim if $classe = $this->modelo->getClasse(); /* * Obter a lista completa de todos os métodos existentes na classe especificada */ if (class_exists($classe)) { $rfx = new \ReflectionClass($classe); $metodos = preg_grep('~^_{2}~', array_column(array_map(function ($m) use($classe) { if ($m->class === $classe) { return (array) $m; } // Fim if }, (array) $rfx->getMethods(\ReflectionMethod::IS_PROTECTED)), 'name'), PREG_GREP_INVERT); sort($metodos); $this->visao->adParam('lista-metodos', $metodos); } // Fim if }
/** * Verificar o permissionamento do usuário logado * * @param string $m Nome da classe que está sendo executada * @param string $a Nome da ação que será executada * * @return bool */ public function verificarPerm($m, $a) { # Permitir para o Super Admin if ((int) $_SESSION['usuario_id'] === -1) { return true; } // Fim if $mgu = new AdminM\GrupoUsuario($_SESSION['usuario_info_grupo']); return (bool) $mgu->verificarPerm($m, $a); }