示例#1
0
        public List <PerfilUsuarioEmpresa> ListarEmpresaPerfilUsuario(Int64 CodigoEmpresa)
        {
            try
            {
                List <PerfilUsuarioEmpresa> listaPermissao = new List <PerfilUsuarioEmpresa>();
                List <PerfilUsuario>        listaPerfis    = new List <PerfilUsuario>();
                PerfilUsuarioDAL            p1             = new PerfilUsuarioDAL();
                listaPerfis = p1.ListarPerfisUsuario("", "", "", "");

                AbrirConexao();
                foreach (PerfilUsuario p in listaPerfis)
                {
                    PerfilUsuarioEmpresa pue = new PerfilUsuarioEmpresa();

                    pue.CodigoEmpresa       = CodigoEmpresa;
                    pue.CodigoPflUsuario    = p.CodigoPflUsuario;
                    pue.DescricaoPflUsuario = p.DescricaoPflUsuario;
                    pue.Liberado            = false;

                    strSQL = "Select Top 1 1 ";
                    strSQL = strSQL + " From PERFIL_DO_USUARIO_NA_EMPRESA ";
                    strSQL = strSQL + " Where CD_EMPRESA = " + Convert.ToString(CodigoEmpresa);
                    strSQL = strSQL + " and   CD_PFL_USUARIO =  " + Convert.ToString(p.CodigoPflUsuario);

                    Cmd = new SqlCommand(strSQL, Con);
                    Dr  = Cmd.ExecuteReader();
                    if (Dr.Read())
                    {
                        pue.Liberado = true;
                    }
                    Dr.Close();

                    listaPermissao.Add(pue);
                }

                return(listaPermissao);
            }

            catch (Exception ex)
            {
                throw new Exception("Erro ao Pesquisar Perfil de Usuário: " + ex.Message.ToString());
            }

            finally
            {
                FecharConexao();
            }
        }
示例#2
0
        public List <Permissao> ListarPerfilUsuario(int CodigoModulo, int CodigoPerfil, string strPrograma)
        {
            try
            {
                AbrirConexao();

                strSQL = " WITH cteMenuNivel(CD_ORDEM , ID, NM_MENU_SISTEMA, Nivel, NomeCompleto , CD_ORD_PAI)  AS " +
                         " (SELECT CD_ORDEM, CD_MENU_SISTEMA, NM_MENU_SISTEMA, 1 AS 'Nivel', UPPER(CAST(NM_MENU_SISTEMA AS VARCHAR(255))) AS 'NomeCompleto', CD_ORDEM AS CD_ORD_PAI " +
                         " FROM MENU_DO_SISTEMA WHERE CD_PAI_MENU_SISTEMA = 0 UNION ALL " +
                         " SELECT m.CD_ORDEM, m.CD_MENU_SISTEMA, m.NM_MENU_SISTEMA, c.Nivel + 1 AS 'Nivel', UPPER(CAST((c.NomeCompleto + ' => ' + m.NM_MENU_SISTEMA) AS VARCHAR(255))) 'NomeCompleto', c.CD_ORD_PAI " +
                         " FROM MENU_DO_SISTEMA m INNER JOIN cteMenuNivel c ON m.CD_PAI_MENU_SISTEMA = c.ID) " +
                         " SELECT c.CD_ORDEM, c.ID, c.NOMECOMPLETO, m.TP_Formulario, m.TX_AJUDA  , 1 AS LIBERADO, 1 AS ACESSO_COMPLETO " +
                         " FROM cteMenuNivel as c inner join MENU_DO_SISTEMA as m on c.id = m.CD_MENU_SISTEMA " +
                         "";

                if (CodigoPerfil <= 0)
                {
                    strSQL = strSQL + " Where m.CD_MENU_SISTEMA = -1 ";
                }
                else
                {
                    PerfilUsuario    p1  = new PerfilUsuario();
                    PerfilUsuarioDAL pd1 = new PerfilUsuarioDAL();

                    p1 = pd1.PesquisarPerfilUsuario(CodigoPerfil);

                    if (p1 == null)
                    {
                        strSQL = strSQL + " Where m.CD_MENU_SISTEMA = -1";
                    }
                    else
                    {
                        strSQL = strSQL + " Where m.CD_MODULO_SISTEMA = " + Convert.ToString(CodigoModulo);
                    }

                    if (strPrograma.Trim() != "")
                    {
                        strSQL = strSQL + " and m.[URL] LIKE '%" + strPrograma + "%'";
                    }
                }

                strSQL = strSQL + " order by C.CD_ORD_PAI, c.NomeCompleto ";


                Cmd = new SqlCommand(strSQL, Con);
                Dr  = Cmd.ExecuteReader();
                Permissao        p     = null;
                List <Permissao> lista = new List <Permissao>();

                while (Dr.Read())
                {
                    p                 = new Permissao();
                    p.CodigoItem      = Convert.ToInt32(Dr["ID"]);
                    p.DescricaoDoMenu = Convert.ToString(Dr["NOMECOMPLETO"]);
                    p.TipoFormulario  = Convert.ToString(Dr["TP_FORMULARIO"]);

                    p.Liberado            = false;
                    p.AcessoCompleto      = false;
                    p.AcessoConsulta      = false;
                    p.AcessoRelatorio     = false;
                    p.AcessoImprimir      = false;
                    p.AcessoIncluir       = false;
                    p.AcessoAlterar       = false;
                    p.AcessoExcluir       = false;
                    p.AcessoDownload      = false;
                    p.AcessoUpload        = false;
                    p.AcessoExclusaoAnexo = false;
                    p.AcessoEspecial1     = false;
                    p.AcessoEspecial2     = false;
                    p.AcessoEspecial3     = false;

                    p.TextoAjuda = Convert.ToString(Dr["TX_AJUDA"]);
                    lista.Add(p);
                }
                Dr.Close();

                //Ler as Permissões do Usuário
                foreach (var permusu in lista)
                {
                    strSQL = "";
                    strSQL = strSQL + " Select CD_MENU_SISTEMA, CD_PFL_USUARIO, isnull(IN_BOTOES,'00000000000000') as TX_INDICADORES ";
                    strSQL = strSQL + " From PERMISSAO_DO_USUARIO ";
                    strSQL = strSQL + " Where CD_MENU_SISTEMA = " + Convert.ToString(permusu.CodigoItem);
                    strSQL = strSQL + " and   CD_PFL_USUARIO =  " + Convert.ToString(CodigoPerfil);

                    Cmd = new SqlCommand(strSQL, Con);
                    Dr  = Cmd.ExecuteReader();

                    while (Dr.Read())
                    {
                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(0, 1) == "1")
                        {
                            permusu.Liberado = true;
                        }
                        else
                        {
                            permusu.Liberado = false;
                        }

                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(1, 1) == "1")
                        {
                            permusu.AcessoCompleto = true;
                        }
                        else
                        {
                            permusu.AcessoCompleto = false;
                        }

                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(2, 1) == "1")
                        {
                            permusu.AcessoConsulta = true;
                        }
                        else
                        {
                            permusu.AcessoConsulta = false;
                        }

                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(3, 1) == "1")
                        {
                            permusu.AcessoRelatorio = true;
                        }
                        else
                        {
                            permusu.AcessoRelatorio = false;
                        }

                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(4, 1) == "1")
                        {
                            permusu.AcessoImprimir = true;
                        }
                        else
                        {
                            permusu.AcessoImprimir = false;
                        }

                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(5, 1) == "1")
                        {
                            permusu.AcessoIncluir = true;
                        }
                        else
                        {
                            permusu.AcessoIncluir = false;
                        }

                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(6, 1) == "1")
                        {
                            permusu.AcessoAlterar = true;
                        }
                        else
                        {
                            permusu.AcessoAlterar = false;
                        }

                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(7, 1) == "1")
                        {
                            permusu.AcessoExcluir = true;
                        }
                        else
                        {
                            permusu.AcessoExcluir = false;
                        }

                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(8, 1) == "1")
                        {
                            permusu.AcessoDownload = true;
                        }
                        else
                        {
                            permusu.AcessoDownload = false;
                        }

                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(9, 1) == "1")
                        {
                            permusu.AcessoUpload = true;
                        }
                        else
                        {
                            permusu.AcessoUpload = false;
                        }

                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(10, 1) == "1")
                        {
                            permusu.AcessoExclusaoAnexo = true;
                        }
                        else
                        {
                            permusu.AcessoExclusaoAnexo = false;
                        }

                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(11, 1) == "1")
                        {
                            permusu.AcessoEspecial1 = true;
                        }
                        else
                        {
                            permusu.AcessoEspecial1 = false;
                        }

                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(12, 1) == "1")
                        {
                            permusu.AcessoEspecial2 = true;
                        }
                        else
                        {
                            permusu.AcessoEspecial2 = false;
                        }

                        if (Convert.ToString(Dr["TX_INDICADORES"]).Substring(13, 1) == "1")
                        {
                            permusu.AcessoEspecial3 = true;
                        }
                        else
                        {
                            permusu.AcessoEspecial3 = false;
                        }
                    }
                    Dr.Close();
                }


                return(lista);
            }

            catch (Exception ex)
            {
                throw new Exception("Erro ao Pesquisar Perfil de Usuário: " + ex.Message.ToString());
            }

            finally
            {
                FecharConexao();
            }
        }