Example #1
0
        public void OnResultExecuting(ResultExecutingContext filterContext)
        {
            // Should only run on a full view rendering result
            if (!(filterContext.Result is ViewResult))
            {
                return;
            }

            // Should only run on the Admin
            if (!AdminAttribute.IsApplied(filterContext.HttpContext))
            {
                return;
            }

            // Populate main nav
            IShape menuShape = _shapeFactory.Create("Navigation",
                                                    Arguments.From(new
            {
                MenuName  = "admin",
                RouteData = filterContext.RouteData,
            }));

            // Enable shape caching
            menuShape.Metadata
            .Cache("menu-admin")
            .AddContext("user.roles")
            .AddDependency("features")
            .AddDependency("types")     // This should go in a Displaying Shape event in the Contents module
            ;

            _layoutAccessor.GetLayout().Navigation.Add(menuShape);
        }
Example #2
0
        public void OnResultExecuting(ResultExecutingContext filterContext)
        {
            // Should only run on a full view rendering result
            if (!(filterContext.Result is ViewResult))
            {
                return;
            }

            // Should only run on the Admin
            if (!AdminAttribute.IsApplied(filterContext.HttpContext))
            {
                return;
            }

            if (filterContext.HttpContext.Response.StatusCode != 200)
            {
                return;
            }

            // Populate main nav
            IShape menuShape = _shapeFactory.Create("Navigation",
                                                    Arguments.From(new
            {
                MenuName  = "admin",
                RouteData = filterContext.RouteData,
            }));

            _layoutAccessor.GetLayout().Navigation.Add(menuShape);
        }
Example #3
0
        public async Task OnAuthorizationAsync(AuthorizationFilterContext context)
        {
            AdminAttribute.Apply(context.HttpContext);

            var authorized = await _authorizationService.AuthorizeAsync(context.HttpContext.User, Permissions.AccessAdminPanel);

            if (!authorized)
            {
                context.Result = new UnauthorizedResult();
            }
        }
Example #4
0
        public void OnActionExecuting(ActionExecutingContext context)
        {
            var controller = context.Controller as Controller;

            if (controller != null)
            {
                if (controller.GetType().Name.StartsWith("Admin"))
                {
                    AdminAttribute.Apply(context.HttpContext);
                }
            }
        }
Example #5
0
        public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            if (AdminAttribute.IsApplied(context.HttpContext) || IsNameAdmin(context))
            {
                var authorized = await _authorizationService.AuthorizeAsync(context.HttpContext.User, Permissions.AccessAdminPanel);

                if (!authorized)
                {
                    context.Result = new UnauthorizedResult();
                    return;
                }
            }

            await base.OnActionExecutionAsync(context, next);
        }
Example #6
0
        public async Task <ThemeSelectorResult> GetThemeAsync()
        {
            if (AdminAttribute.IsApplied(_httpContextAccessor.HttpContext))
            {
                string adminThemeName = await _adminThemeService.GetAdminThemeNameAsync();

                if (String.IsNullOrEmpty(adminThemeName))
                {
                    return(null);
                }

                return(new ThemeSelectorResult
                {
                    Priority = 100,
                    ThemeName = adminThemeName
                });
            }

            return(null);
        }