コード例 #1
0
 private void PopularPermissoes(PermissaoViewModel permissaoViewModel)
 {
     permissaoViewModel.Menus = _controleAcessoRepositorio
                                .ObterPermissoes(permissaoViewModel.CargoId)
                                .ToList();
 }
コード例 #2
0
        private List <string> ObterPermissoesUsuario(Usuario usuario)
        {
            var permissoes = _controleAcessoRepositorio.ObterPermissoes(usuario.CargoId);

            var menus = new List <string>();

            menus.AddRange(permissoes.Where(c => c.Acessar)
                           .Select(c => string.Concat(c.Descricao, ":", nameof(c.Acessar))));

            menus.AddRange(permissoes.Where(c => c.Cadastrar)
                           .Select(c => string.Concat(c.Descricao, ":", nameof(c.Cadastrar))));

            menus.AddRange(permissoes.Where(c => c.Atualizar)
                           .Select(c => string.Concat(c.Descricao, ":", nameof(c.Atualizar))));

            menus.AddRange(permissoes.Where(c => c.Excluir)
                           .Select(c => string.Concat(c.Descricao, ":", nameof(c.Excluir))));

            menus.AddRange(permissoes.Where(c => c.Logs)
                           .Select(c => string.Concat(c.Descricao, ":", nameof(c.Logs))));

            if (usuario.Administrador)
            {
                menus.Add("Administrador");
            }

            menus.Sort();

            foreach (var menu in permissoes)
            {
                foreach (var campo in menu.Campos
                         .Where(c => (c.TipoPermissao == TipoPermissao.LEITURA_ESCRITA) && c.MenuId == menu.Id))
                {
                    menus.Add($"{menu.Descricao}:{campo.ObjetoId}");
                }

                foreach (var campo in menu.Campos
                         .Where(c => (c.TipoPermissao == TipoPermissao.ACESSO_TOTAL) && c.MenuId == menu.Id))
                {
                    menus.Add($"{menu.Descricao}:{campo.ObjetoId}_Full");
                }
            }

            if (permissoes.SelectMany(c => c.Campos.Where(d => d.TipoPermissao == TipoPermissao.ACESSO_TOTAL)).Any())
            {
                menus.Add("OportunidadeFullControll");
            }

            foreach (var menu in permissoes)
            {
                foreach (var campo in menu.Campos
                         .Where(c => (c.TipoPermissao == TipoPermissao.ACESSO_TOTAL) && c.MenuId == 9))
                {
                    if (campo.ObjetoId == "Anexo")
                    {
                        if (!menus.Contains("OportunidadeAnexosFullControll"))
                        {
                            menus.Add("OportunidadeAnexosFullControll");
                        }
                    }
                }
            }

            if (usuario.Externo)
            {
                menus.Add("UsuarioExterno");
            }

            if (_ambienteOracleService.Ambiente() == Business.Enums.AmbienteOracle.DEV)
            {
                menus.Add("BaseDesenvolvimento");
            }
            else
            {
                menus.Add("BaseProducao");
            }

            return(menus);
        }