Пример #1
0
        private void ObterNiveisOcupacionaisSelecionados(Dominio.Classes.Pagina pagina)
        {
            var manter = new ManterNivelOcupacional();

            foreach (ListItem item in cbklNiveisOcupacionais.Items.Cast <ListItem>().Where(x => x.Selected))
            {
                pagina.AdicionarNivelOcupacional(manter.ObterNivelOcupacionalPorID(int.Parse(item.Value)));
            }
        }
Пример #2
0
        private void ObterUfsSelecionadas(Dominio.Classes.Pagina pagina)
        {
            var manter = new ManterUf();

            foreach (ListItem item in ckblUfs.Items.Cast <ListItem>().Where(x => x.Selected))
            {
                pagina.AdicionarUf(manter.ObterUfPorID(int.Parse(item.Value)));
            }
        }
Пример #3
0
        private void SetarTituloPagina(Dominio.Classes.Pagina paginaAtual, Usuario usuarioLogado)
        {
            if (Request.Url.AbsolutePath.ToLower() == "/paginas.aspx" || paginaAtual == null)
            {
                linhaTituloPagina.Visible    =
                    descricaoPagina.Visible  =
                        tituloPagina.Visible = false;

                return;
            }

            if (!string.IsNullOrEmpty(Page.Title))
            {
                tituloPagina.InnerText = Page.Title;
                return;
            }

            linhaTituloPagina.Visible    =
                descricaoPagina.Visible  =
                    tituloPagina.Visible = true;

            if (paginaAtual.Profundidade == (int)enumTipoPagina.CadastroEdicao ||
                paginaAtual.Profundidade == (int)enumTipoPagina.Subcadastro)
            {
                // Verifica se a URL contém o parâmetro contido na Chave Verificadora da página.

                if (Request.QueryString[paginaAtual.ChaveVerificadora] == null)
                {
                    tituloPagina.InnerText = "Cadastro" + (paginaAtual.Titulo != null ? " de " + paginaAtual.Titulo : "");
                }
                else
                {
                    tituloPagina.InnerText = "Gerenciamento " + (paginaAtual.Titulo != null ? " de " + paginaAtual.Titulo : "");
                }
            }
            else
            {
                tituloPagina.InnerText = paginaAtual.Titulo;
            }

            if (string.IsNullOrWhiteSpace(paginaAtual.Descricao))
            {
                descricaoPagina.Visible = false;
            }
            else
            {
                descricaoPagina.Visible   = true;
                descricaoPagina.InnerHtml = paginaAtual.Descricao;
            }

            // Adiciona Conteudo de Administrador
            divDescricaoAdministrador.Visible = false;
            if (!string.IsNullOrWhiteSpace(paginaAtual.DescricaoAdministrador))
            {
                if (usuarioLogado.IsAdministrador())
                {
                    divDescricaoAdministrador.Visible   = true;
                    divDescricaoAdministrador.InnerHtml = paginaAtual.DescricaoAdministrador;
                }
            }

            // Adicionar conteudo de Gestor
            divDescricaoGestor.Visible = false;
            if (!string.IsNullOrWhiteSpace(paginaAtual.DescricaoGestor))
            {
                if (usuarioLogado.IsGestor())
                {
                    divDescricaoGestor.Visible   = true;
                    divDescricaoGestor.InnerHtml = paginaAtual.DescricaoGestor;
                }
            }
        }
Пример #4
0
        private void EstilizarPagina(Usuario usuarioLogado, ManterPagina manterPagina, Dominio.Classes.Pagina paginaAtual)
        {
            string estilo;
            string nomePagina;

            if (paginaAtual.Profundidade == 1)
            {
                estilo     = paginaAtual.Estilo;
                nomePagina = paginaAtual.Nome;
            }
            else
            {
                var menuAtual = manterPagina.ObterMenuPai(paginaAtual);

                if (menuAtual == null)
                {
                    RedirecionarPaginaInexistente(usuarioLogado, manterPagina, enumPermissaoPagina.PaginaInexistente);
                    return;
                }

                estilo     = menuAtual.Estilo;
                nomePagina = menuAtual.Nome;
            }

            MainBody.Attributes["class"] = estilo;
            NomeLocalizacao.InnerText    = nomePagina;
        }
Пример #5
0
        private bool VerificarPermissaoPagina(Usuario usuarioLogado, ManterPagina manterPagina, Dominio.Classes.Pagina paginaAtual)
        {
            if (Request.Url.AbsolutePath.ToLower() == "/paginas.aspx" && usuarioLogado.SuperAdministrador)
            {
                MainBody.Attributes["class"] = "paginas";
                NomeLocalizacao.InnerText    = "Páginas";

                sidebar.Visible = false;
                contentArea.Attributes.Remove("class");

                return(false);
            }

            // Verificar se a página atual foi cadastrada.
            if (paginaAtual == null)
            {
                RedirecionarPaginaInexistente(usuarioLogado, manterPagina, enumPermissaoPagina.PaginaInexistente);
                return(false);
            }

            // Verificar permissão de Perfil.
            if (!paginaAtual.TodosPerfis)
            {
                if (!usuarioLogado.ListaPerfil.Any(lp => paginaAtual.Perfis.Any(p => p.ID == lp.Perfil.ID)))
                {
                    // Usuário não possui perfil para visualizar a página.
                    RedirecionarPaginaInexistente(usuarioLogado, manterPagina, enumPermissaoPagina.PerfilNaoPermitido);
                    return(false);
                }
            }

            // Verificar permissão de UF.
            if (!paginaAtual.TodasUfs)
            {
                if (paginaAtual.Ufs.All(u => u.ID != usuarioLogado.UF.ID) && usuarioLogado.UF.IsNacionalizado())
                {
                    // Usuário não está em uma UF com permissão para visualizar a página.
                    RedirecionarPaginaInexistente(usuarioLogado, manterPagina, enumPermissaoPagina.UfNaoAutorizada);
                    return(false);
                }
            }

            // Verificar permissão de Nível Ocupacional.
            if (!paginaAtual.TodosNiveisOcupacionais)
            {
                if (paginaAtual.NiveisOcupacionais.All(n => n.ID != usuarioLogado.NivelOcupacional.ID))
                {
                    // Usuário está em um Nível Ocupacional para visualizar a página.
                    RedirecionarPaginaInexistente(usuarioLogado, manterPagina, enumPermissaoPagina.NivelOcupacionalNaoAutorizado);
                    return(false);
                }
            }

            return(true);
        }
Пример #6
0
        private void PreencherSidebar(ManterPagina manterPagina, Usuario usuarioLogado, Dominio.Classes.Pagina paginaAtual)
        {
            if (paginaAtual.CaminhoRelativo.ToLower() == "/paginas.aspx")
            {
                // Esconde o sidebar e coloca a página em largura máxima.
                sidebar.Visible = false;
                contentArea.Attributes.Remove("class");
            }
            else
            {
                // Coloca a página em largura reduzida para caber o sidebar.
                contentArea.Attributes["class"] = "col-sm-9 conteudo_busca content-area";

                // Obtém o menu atual para filtrar somente pelas páginas dentro desse Menu.
                var menuAtual = paginaAtual.Profundidade == (int)enumTipoPagina.Menu ? paginaAtual : manterPagina.ObterMenuPai(paginaAtual);

                // Obtém todas as páginas com filtro.
                var paginas = manterPagina.ObterTodasPaginas(true).Where(p => p.PossuiPermissao(usuarioLogado) && p.IsFilhoDe(menuAtual)).ToList();

                var sidebarRow = new HtmlGenericControl("div");
                sidebarRow.Attributes["class"] = "row";

                var sidebarDiv = new HtmlGenericControl("div");
                sidebarDiv.Attributes["class"] = "col-sm-12";

                // Preencher os agrupadores
                foreach (var agrupador in paginas.Where(p => p.Profundidade == 2 && p.PossuiFilho() && p.PossuiPermissao(usuarioLogado)))
                {
                    var row = new HtmlGenericControl("div");
                    row.Attributes["class"] = "row";

                    var box = new HtmlGenericControl("div");
                    box.Attributes["class"] = "box";

                    var subtitulo = new HtmlGenericControl("div");
                    subtitulo.Attributes["class"] = "subtitulo";

                    var nome = new HtmlGenericControl("h3");
                    nome.InnerHtml = agrupador.Nome;

                    if (agrupador.IsPaiOuIguala(paginaAtual))
                    {
                        nome.Attributes.Add("class", "text-bold");
                    }

                    var contentBody = new HtmlGenericControl("div");
                    contentBody.Attributes["class"] = "contentBody";

                    var ul = new HtmlGenericControl("ul");
                    ul.Attributes.Add("class", "links");


                    // Preencher as páginas
                    foreach (var pagina in paginas.Where(p => p.Profundidade == 3 && p.IsFilhoDe(agrupador)))
                    {
                        var li = new HtmlGenericControl("li");
                        li.Attributes.Add("class", "menu-item");

                        var linkPagina = new HtmlGenericControl("a");
                        linkPagina.Attributes.Add("class", "menu-nome" + (pagina.IsPaiOuIguala(paginaAtual) ? " text-bold" : ""));
                        linkPagina.Attributes.Add("tittle", "Abrir " + pagina.Nome);
                        linkPagina.Attributes.Add("href", pagina.CaminhoRelativo);
                        linkPagina.InnerHtml = pagina.Nome;

                        var actions = new HtmlGenericControl("span");
                        actions.Attributes.Add("class", "actions visible-md visible-lg");


                        // Preencher cadastro
                        foreach (var cadastro in paginas.Where(p => p.Profundidade == 4 && p.IsFilhoDe(pagina)))
                        {
                            var cadastroIcon = new HtmlGenericControl("a");
                            cadastroIcon.Attributes.Add("href", cadastro.CaminhoRelativo);
                            cadastroIcon.Attributes.Add("class", "glyphicon glyphicon-" + cadastro.IconeMenu
                                                        + " "
                                                        + (cadastro.IsPaiOuIguala(paginaAtual) ? "link-no-underline" : " menu-relatar"));

                            actions.Controls.Add(cadastroIcon);
                        }


                        var linkIcon = new HtmlGenericControl("a");
                        linkIcon.Attributes.Add("href", pagina.CaminhoRelativo);
                        // Insere ícone padrão do agrupador ou ícone personalizado caso tenha sido informado.
                        linkIcon.Attributes.Add("class", "glyphicon glyphicon-"
                                                + (string.IsNullOrEmpty(pagina.IconeMenu) ? agrupador.IconePaginas : pagina.IconeMenu)
                                                + " "
                                                + (pagina.ID == paginaAtual.ID ? "link-no-underline" : "menu-relatar"));

                        actions.Controls.Add(linkIcon);

                        li.Controls.Add(linkPagina);
                        li.Controls.Add(actions);

                        ul.Controls.Add(li);
                    }

                    // Insere os controles em hierarquia.
                    contentBody.Controls.Add(ul);

                    subtitulo.Controls.Add(nome);
                    subtitulo.Controls.Add(contentBody);

                    box.Controls.Add(subtitulo);

                    row.Controls.Add(box);

                    sidebarDiv.Controls.Add(box);
                }

                sidebarRow.Controls.Add(sidebarDiv);

                sidebar.Controls.Add(sidebarRow);
            }
        }