/// <summary>
        /// sobrecarrega AuthorizeCore e diz se o usuário pode acessar ou não
        /// </summary>
        /// <param name="httpContext">HttpContextBase - contexto da chamada</param>
        /// <returns>bool - true se o usuário estiver autorizado</returns>
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            if ((httpContext.Handler != null) && (httpContext.Handler is MvcHandler))
            {
                bool podeAcessar = false;
                using (TPAContext db = new TPAContext())
                {
                    ControleAcesso c = new ControleAcesso(db);

                    try
                    {
                        var    routeData  = ((MvcHandler)httpContext.Handler).RequestContext.RouteData;
                        string actionName = routeData.Values["action"].ToString();

                        string controllerName = routeData.Values["controller"].ToString();

                        podeAcessar = c.PodeAcessar(controllerName, actionName);
                    }
                    catch (Exception err)
                    {
                        LogServices.LogarException(err);
                    }
                }
                return(podeAcessar);
            }
            else
            {
                return(base.AuthorizeCore(httpContext));
            }
        }
Beispiel #2
0
 /// <summary>
 /// helper estático para verificar nas páginas cshtml se um usuário tem acesso ao recurso especificado
 /// </summary>
 /// <param name="nomePermissao">string - nome do recurso/permissão</param>
 /// <returns>bool - true se o usuário no contexto tem acesso, false caso contrário</returns>
 public static bool TemAcesso(string nomePermissao)
 {
     using (TPAContext db = new TPAContext())
     {
         ControleAcesso ctrl = new ControleAcesso(db);
         return(ctrl.PodeAcessar(nomePermissao));
     }
 }
Beispiel #3
0
 /// <summary>
 /// helper estático para verificar nas páginas cshtml se um usuário tem acesso ao controller / action especificados
 /// </summary>
 /// <param name="controllerName">string - nome do controller</param>
 /// <param name="actionName">string - nome da ação</param>
 /// <returns>bool - true se o usuário no contexto tem acesso, false caso contrário</returns>
 public static bool TemAcesso(string controllerName, string actionName)
 {
     using (TPAContext db = new TPAContext())
     {
         ControleAcesso ctrl = new ControleAcesso(db);
         return(ctrl.PodeAcessar(controllerName, actionName));
     }
 }
Beispiel #4
0
        /// <summary>
        /// se o usuário logado tem acesso ao recurso, gera um item de menu usando um list item html. Retorna string vazia caso contrário.
        /// </summary>
        /// <param name="html">HtmlHelper - o html helper do Razor</param>
        /// <param name="texto">string - o texto do menu</param>
        /// <param name="acao">string - a ação a ser verificada</param>
        /// <param name="controller">string - o controller a ser verificado</param>
        /// <returns>HtmlString - Um item de menu em html</returns>
        public static HtmlString MenuItemLiSeguro(this HtmlHelper html, string texto, string acao, string controller)
        {
            if (ControleAcesso.TemAcesso(controller, acao))
            {
                return(new HtmlString(string.Format("<li>{0}</li>", LinkExtensions.ActionLink(html, texto, acao, controller))));
            }

            return(new HtmlString(""));
        }