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))); } }
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))); } }
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; } } }
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; }
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); }
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); } }