/// <summary>
        /// Faz a alteração do acesso
        /// </summary>
        /// <param name="acesso">The acesso.</param>
        public void Alter(ControleDeAcesso acesso)
        {
            var tran = session.BeginTransaction();

            session.Merge(acesso);
            tran.Commit();
        }
        /// <summary>
        /// Adiciona um novo controle de acesso
        /// </summary>
        /// <param name="acesso">The acesso.</param>
        public void Add(ControleDeAcesso acesso)
        {
            var tran = session.BeginTransaction();

            session.Save(acesso);
            tran.Commit();
        }
        /// <summary>
        /// Exclui um controle de acesso
        /// </summary>
        /// <param name="acesso">The acesso.</param>
        public void Delete(ControleDeAcesso acesso)
        {
            var tran = session.BeginTransaction();

            session.Delete(acesso);
            tran.Commit();
        }
Esempio n. 4
0
        public ActionResult Alterar(AcessoModelView modelView)
        {
            if (!ModelState.IsValid)
            {
                return(View(modelView));
            }

            //Modificações do Acesso
            ControleDeAcesso acessoModificado = acessoDAO.GetById(modelView.Id);

            acessoModificado.Motivo   = modelView.Motivo;
            acessoModificado.Visitado = modelView.Visitado;

            Visitante visitante = visitanteDAO.GetById(modelView.IdVisitante);

            visitante.FotoBase64 = modelView.Foto;
            visitante.FotoId     = modelView.Foto.GetHashMD5();

            //persiste o visitante
            visitanteDAO.Alter(visitante);

            //Persiste o acesso
            acessoDAO.Alter(acessoModificado);

            return(RedirectToAction("Index"));
        }
 protected override bool IsAuthorized(HttpActionContext actionContext)
 {
     if (actionContext.ActionDescriptor.GetCustomAttributes <DontAuthorizeFilterApiAttribute>().Any())
     {
         return(true);
     }
     return(ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session).InformacoesUsuario != null);
 }
Esempio n. 6
0
    public static PortalApiModel.RetornoTransicionarSistema TransicionarSistema(PortalApiModel.TransicionarSistema parametros)
    {
        //
        WebReturn <bool> retr = new WebReturn <bool>();

        try
        {
            PortalApiModel.RetornoTransicionarSistema retorno = new PortalApiModel.RetornoTransicionarSistema();
            //
            ControleDeAcessoTO.ObterSistemasPermitidos sistemaSelecionado;
            if (ControleDeAcesso.MODODESENVOLVIMENTO == 0)
            {
                sistemaSelecionado = ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session).SistemasPermitidos.Where(x => x.CODSISINF == parametros.CODSISINF).FirstOrDefault();
            }
            else
            {
                sistemaSelecionado = new ControleDeAcessoTO.ObterSistemasPermitidos()
                {
                    DESURLLNK = ControleDeAcesso.URLSISTEMAMODODESENVOLVIMENTO
                }
            };
            if (sistemaSelecionado != null)
            {
                var PRIVATEKEY = GerarChavePrivada();
                var codFnc     = ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session).InformacoesUsuario.CODFNC;
                //
                retorno.PUBLICTOKEN = Encriptar(PRIVATEKEY, new JavaScriptSerializer().Serialize(new ControleDeAcesso.ParametrosCriptografia()
                {
                    ParametrosTransicao = parametros, CODFNC = codFnc
                }));
                //
                retorno.PUBLICKEY = CalcularMD5(PRIVATEKEY);
                retorno.DESURLLNK = sistemaSelecionado.DESURLLNK + CAMINHOAPISISTEMAS + "?PUBLICKEY=" + HttpUtility.UrlEncode(retorno.PUBLICKEY) + "&PUBLICTOKEN=" + HttpUtility.UrlEncode(retorno.PUBLICTOKEN);
                //
                lock (ControleDeAcesso.PENDINGTOKENS)
                    ControleDeAcesso.PENDINGTOKENS.Add(new ControleDeAcesso.PENDINGTOKEN
                                                           ()
                    {
                        DTEXP      = DateTime.Now.AddSeconds(10),
                        PRIVATEKEY = PRIVATEKEY,
                        PUBLICKEY  = retorno.PUBLICKEY
                    });
            }
            return(retorno);
        }
        catch (Exception ex)
        {
            retr.Code    = 1;
            retr.Message = ex.Message;
            Utilitarios.CriaLogErro(ex);
            Utilitarios.InserirLog(ex,
                                   System.Reflection.MethodInfo.GetCurrentMethod().Name,
                                   string.Join(";", System.Reflection.MethodInfo.GetCurrentMethod().GetParameters().Select(val => val.Name)),
                                   ex.GetType().Name,
                                   "ERRO TRANSACIONAR SISTEMA.!!");
            return(null /* TODO Change to default(_) if this is not a reference type */);
        }
    }
Esempio n. 7
0
        public ActionResult GerarSaida(ControleDeAcesso model)
        {
            var acesso = acessoDAO.GetById(model.Id);

            acesso.DataSaida = model.DataSaida;

            //Persiste o acesso
            acessoDAO.Alter(acesso);

            return(RedirectToAction("Index"));
        }
Esempio n. 8
0
        public ActionResult Excluir(AcessoModelView modelView)
        {
            ControleDeAcesso acesso = acessoDAO.GetById(modelView.Id);

            if (acesso.DataSaida == null)
            {
                acessoDAO.Delete(acesso);
                return(RedirectToAction("Index"));
            }
            return(View("NaoExclui"));
        }
Esempio n. 9
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 void InserirLog(Exception ex, string metodo, string parametro, string camada, string mensagem)
    {
        RestClient  client  = new RestClient(string.Format("{0}/{1}", Constantes.WebApiLog, Constantes.InserirLog));
        RestRequest request = new RestRequest();

        request.Method = Method.POST;

        string MessagemL = "Portal Acesso Smart: " + mensagem + ": " + Environment.NewLine + Environment.NewLine +
                           "Verifique a mensagem de erro a seguir para solucionar o problema." + Environment.NewLine +
                           Environment.NewLine + ex.Message + Environment.NewLine + Environment.NewLine + "Metodo: " +
                           ex.TargetSite.DeclaringType.FullName + ex.TargetSite.Name + Environment.NewLine + Environment.NewLine + "Origem: " +
                           ex.Source + Environment.NewLine + Environment.NewLine + "Pilha de execução: " + ex.StackTrace;

        string MessagemReduzida = "";
        string Parametro        = "";

        if (ex.Message.Length < 600)
        {
            MessagemReduzida = ex.Message;
        }
        else
        {
            MessagemReduzida = ex.Message.Substring(0, 600);
        }

        if (parametro.Length > 70)
        {
            Parametro = parametro.Substring(0, 70);
        }
        else
        {
            Parametro = parametro;
        }

        int codfnc = ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session).InformacoesUsuario != null?ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session).InformacoesUsuario.CODFNC : 0;

        ControleLog param = new ControleLog()
        {
            CODSISINF = 0,
            CODFNC    = codfnc,
            DESMDO    = metodo,
            DESPMTSIS = Parametro,
            DESCAMERR = camada,
            DESERRRDC = MessagemReduzida,
            DESERRDDO = MessagemL
        };

        string body = JsonConvert.SerializeObject(param);

        request.AddParameter("application/json", body, ParameterType.RequestBody);
        IRestResponse    response = client.Execute(request);
        WebReturn <bool> api      = JsonConvert.DeserializeObject <WebReturn <bool> >(response.Content);
    }
Esempio n. 11
0
        /// <summary>
        /// Builds the model.
        /// </summary>
        /// <param name="modelView">The model view.</param>
        /// <returns></returns>
        public static ControleDeAcesso BuildModel(AcessoModelView modelView)
        {
            ControleDeAcesso controleDeAcesso = new ControleDeAcesso();

            controleDeAcesso.DataEntrada = modelView.DataEntrada;
            controleDeAcesso.DataSaida   = modelView.DataSaida;
            controleDeAcesso.Id          = modelView.IdAcesso;
            controleDeAcesso.Motivo      = modelView.Motivo;
            controleDeAcesso.IdCartao    = modelView.IdCartao;
            controleDeAcesso.Visitado    = modelView.Visitado;
            controleDeAcesso.Visitante   = new Visitante();


            return(controleDeAcesso);
        }
 protected override bool AuthorizeCore(HttpContextBase httpContext)
 {
     if (actionDesc.GetCustomAttributes(typeof(DontAuthorizeFilterMvcAttribute), false).Any())
     {
         return(true);
     }
     if (ReferenceEquals(ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session).InformacoesUsuario, null))
     {
         httpContext.Response.Redirect("~/Paginas/Login/Index");
         return(false);
     }
     else
     {
         return(true);
     }
 }
Esempio n. 13
0
        /// <summary>
        /// Builds the model view.
        /// </summary>
        /// <param name="acesso">The acesso.</param>
        /// <returns></returns>
        public static AcessoModelView BuildModelView(ControleDeAcesso acesso)
        {
            AcessoModelView modelView = new AcessoModelView()
            {
                DataEntrada = acesso.DataEntrada,
                DataSaida   = acesso.DataSaida,
                IdAcesso    = acesso.Id,
                IdCartao    = acesso.IdCartao,
                Motivo      = acesso.Motivo,
                IdVisitante = acesso.Visitante.Id,
                Documento   = acesso.Visitante.Documento,
                Empresa     = acesso.Visitante.Empresa,
                Nome        = acesso.Visitante.Nome,
                Rg          = acesso.Visitante.Rg,
                Telefone    = acesso.Visitante.Telefone,
                Visitado    = acesso.Visitado,
                Foto        = ""
            };

            return(modelView);
        }
Esempio n. 14
0
    protected override bool AuthorizeCore(HttpContextBase hContext)
    {
        var infoUsr = ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session);

        if (hContext.Session["URLsAutorizadas"] != null)
        {
            //
            var URLs = (List <string>)(hContext.Session["URLsAutorizadas"]);
            if (URLs.Where(x => x.Equals(hContext.Request.Url.AbsolutePath)).Count() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        else
        {
            return(true);
        }
    }
Esempio n. 15
0
    public static ControleDeAcesso.ConjuntoDePermissoesUsuarioModulos ObterInformacoesUsuario(PortalApiModel.ObterInformacoesUsuario parametros)
    {
        //
        WebReturn <bool> retr = new WebReturn <bool>();

        try
        {
            ControleDeAcesso.ConjuntoDePermissoesUsuarioModulos retorno = null /* TODO Change to default(_) if this is not a reference type */;
            //
            var pendingToken = ControleDeAcesso.PENDINGTOKENS.Where(x => x.PUBLICKEY == parametros.PUBLICKEY).FirstOrDefault();
            if (pendingToken != null)
            {
                var desCriptografia             = Decriptar(pendingToken.PRIVATEKEY, parametros.PUBLICTOKEN);
                var parametrosDescriptografados = new JavaScriptSerializer().Deserialize <ControleDeAcesso.ParametrosCriptografia>(desCriptografia);
                if (parametrosDescriptografados.ParametrosTransicao.CODSISINF == parametros.CODSISINF)
                {
                    lock (ControleDeAcesso.PENDINGTOKENS)
                        ControleDeAcesso.PENDINGTOKENS.Remove(pendingToken);
                    retorno = ControleDeAcesso.ObterConjuntoDeModulosUsuario(parametrosDescriptografados.CODFNC, parametrosDescriptografados.ParametrosTransicao.CODSISINF);
                }
            }
            //
            return(retorno);
        }
        catch (Exception ex)
        {
            retr.Code    = 1;
            retr.Message = ex.Message;
            Utilitarios.CriaLogErro(ex);
            Utilitarios.InserirLog(ex,
                                   System.Reflection.MethodInfo.GetCurrentMethod().Name,
                                   string.Join(";", System.Reflection.MethodInfo.GetCurrentMethod().GetParameters().Select(val => val.Name)),
                                   ex.GetType().Name,
                                   "ERRO AO OBTER INFORMAÇÕES DO USUARIO.!!");
            return(null /* TODO Change to default(_) if this is not a reference type */);
        }
    }
Esempio n. 16
0
        public ActionResult Incluir(AcessoModelView model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            //Transforma em visitante a modelView dos acessos
            Visitante visitante = VisitanteFactory.BuildModel(model);


            //Cria um controle de Acesso com base na modelView
            ControleDeAcesso acesso = ControleDeAcessoFactory.BuildModel(model);

            acesso.DataEntrada = DateTime.Now;

            //Adiciona o visitante no controle de acesso
            acesso.Visitante = visitante;

            //Grava quem fez o registro
            Usuario user = (Usuario)Session["usuario"];

            acesso.Usuario      = user;
            acesso.DataInclusao = DateTime.Now;

            //Verifica se o visitante já está na base antes de persisti-lo
            Visitante visita = visitanteDAO.GetByDocumento(visitante.Documento);

            if (visita == null)
            {
                visitante.Nome    = visitante.Nome.ToUpper();
                visitante.Empresa = visitante.Empresa.ToUpper();
                visitante.FotoId  = visitante.FotoBase64.GetHashMD5();
                //Persiste o Visitante
                visitanteDAO.Add(visitante);

                //Persiste o acesso
                acessoDAO.Add(acesso);

                return(RedirectToAction("Index"));
            }

            //verifica se o visitante não está bloqueado antes de persistir o acesso
            if (visita.Bloqueado)
            {
                ModelState.AddModelError("BLQ", "Visitante bloqueado!");
                return(View(model));
            }

            //Altera o visitante com a nova Foto
            visita.FotoBase64 = model.Foto;
            visita.FotoId     = model.Foto.GetHashMD5();


            visitanteDAO.Alter(visita);

            //Persiste o acesso
            acesso.Visitante = visita;
            acessoDAO.Add(acesso);

            return(RedirectToAction("Index"));
        }