Example #1
0
    public LoginApiModel.RetornoEfetuarLogin EfetuarLogin(LoginApiModel.EfetuarLogin parametros)
    {
        var ret = new LoginApiModel.RetornoEfetuarLogin();
        //
        var grupos = ControleDeAcesso.AutenticaUsuario(parametros.USUARIO, parametros.SENHA);

        if (grupos == null || grupos != null && grupos.Count > 0)
        {
            var loginObj = ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session, parametros.USUARIO, grupos);
            if (loginObj.InformacoesUsuario == null)
            {
                ret.MENSAGEM = "Usuário não existente na base de dados.";
            }
            else
            {
                //
                if ((grupos != null))
                {
                    List <string> GruposSmart = new List <string>();
                    //
                    grupos.ForEach(Item =>
                    {
                        if ((Item.ToUpper().StartsWith("SMART.")))
                        {
                            GruposSmart.Add(Item);
                        }
                    });
                    //
                    if ((GruposSmart != null && GruposSmart.Count > 0))
                    {
                        ControleDeAcessoBLL BLL = new ControleDeAcessoBLL();
                        BLL.ValidarGrupoSistemas(loginObj.InformacoesUsuario.CODFNC, GruposSmart);
                        //
                        loginObj = ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session, parametros.USUARIO, grupos);
                    }
                }
                //
                if (loginObj.SistemasPermitidos.Count == 0)
                {
                    ret.MENSAGEM = "Usuário sem permissão de acesso associada.";
                }
                else
                {
                    ret.CODIGO = 1;
                }
            }
        }
        else
        {
            ret.MENSAGEM = "Usuário ou senha incorretos.";
        }
        //
        return(ret);
    }
    public static ConjuntoDePermissoesUsuarioModulos ObterConjuntoDeModulosUsuario(int CODFNC, int CODSISINF)
    {
        ConjuntoDePermissoesUsuarioModulos retorno = new ConjuntoDePermissoesUsuarioModulos();
        //
        var bll = new ControleDeAcessoBLL();

        retorno.InformacoesUsuario = bll.ObterInformacoesUsuario(CODFNC, string.Empty).FirstOrDefault();
        retorno.ModulosPermitidos  = bll.ObterModulosPermitidos(CODSISINF, CODFNC);
        foreach (var Item in retorno.ModulosPermitidos)
        {
            Item.CONTROLES.AddRange(bll.ObterControlesPermitidos(Item.CODMDUSIS, CODSISINF, CODFNC));
        }
        //
        return(retorno);
    }
    public static ConjuntoDePermissoesUsuarioSistemas ObterConjuntoDePermissoesUsuario(HttpSessionState Session, string nomUsrRde = "", List <string> grupos = null)
    {
        ConjuntoDePermissoesUsuarioSistemas retorno = new ConjuntoDePermissoesUsuarioSistemas();

        //
        if ((!nomUsrRde.Equals(string.Empty)))
        {
            var bll = new ControleDeAcessoBLL();
            //
            retorno.InformacoesUsuario = bll.ObterInformacoesUsuario(0, nomUsrRde).FirstOrDefault();
            if (retorno.InformacoesUsuario != null)
            {
                retorno.SistemasPermitidos = bll.ObterSistemasPermitidos(CODSISINF, retorno.InformacoesUsuario.CODFNC);
                if (grupos != null)
                {
                    retorno.SistemasPermitidos = retorno.SistemasPermitidos.Where(x => grupos.Contains(x.DESGRPRDESISSMA)).ToList();
                }
            }
        }
        else if (Session["ConjuntoDePermissoesUsuario"] != null)
        {
            retorno = (ConjuntoDePermissoesUsuarioSistemas)Session["ConjuntoDePermissoesUsuario"];
        }
        //
        if (retorno != null && retorno.InformacoesUsuario != null && retorno.SistemasPermitidos.Count > 0)
        {
            Session["ConjuntoDePermissoesUsuario"] = retorno;
        }
        else
        {
            Session.Clear();
            Session.Abandon();
        }
        //
        return(retorno);
    }