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); }
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); }
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(); } }
public void OnActionExecuting(ActionExecutingContext context) { var controller = context.Controller as Controller; if (controller != null) { if (controller.GetType().Name.StartsWith("Admin")) { AdminAttribute.Apply(context.HttpContext); } } }
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); }
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); }