public ActionResult Index(NavigationManagementViewModel model, int?menuId) { var menus = Services.ContentManager.Query("Menu").List().ToList() .OrderBy(x => x.ContentManager.GetItemMetadata(x).DisplayText); if (!menus.Any()) { if (!Services.Authorizer.Authorize(Permissions.ManageMenus, T("Not allowed to manage menus"))) { return(new HttpUnauthorizedResult()); } return(RedirectToAction("Create", "Admin", new { area = "Contents", id = "Menu", returnUrl = Request.RawUrl })); } var allowedMenus = menus.Where(menu => Services.Authorizer.Authorize(Permissions.ManageMenus, menu)).ToList(); if (!allowedMenus.Any()) { return(new HttpUnauthorizedResult()); } IContent currentMenu = menuId == null ? allowedMenus.FirstOrDefault() : allowedMenus.FirstOrDefault(menu => menu.Id == menuId); if (currentMenu == null && menuId != null) // incorrect menu id passed { return(RedirectToAction("Index")); } if (model == null) { model = new NavigationManagementViewModel(); } if (model.MenuItemEntries == null || !model.MenuItemEntries.Any()) { model.MenuItemEntries = _menuService.GetMenuParts(currentMenu.Id).Select(CreateMenuItemEntries).OrderBy(menuPartEntry => menuPartEntry.Position, new FlatPositionComparer()).ToList(); } model.MenuItemDescriptors = _menuManager.GetMenuItemTypes(); model.Menus = allowedMenus; model.CurrentMenu = currentMenu; // need action name as this action is referenced from another action return(View(model)); }
public ActionResult Index(NavigationManagementViewModel model, int?menuId) { if (!Services.Authorizer.Authorize(Permissions.ManageMainMenu, T("Not allowed to manage the main menu"))) { return(new HttpUnauthorizedResult()); } IEnumerable <TitlePart> menus = Services.ContentManager.Query <TitlePart, TitlePartRecord>().OrderBy(x => x.Title).ForType("Menu").List(); if (!menus.Any()) { return(RedirectToAction("Create", "Admin", new { area = "Contents", id = "Menu", returnUrl = Request.RawUrl })); } IContent currentMenu = menuId == null ? menus.FirstOrDefault() : menus.FirstOrDefault(menu => menu.Id == menuId); if (currentMenu == null && menuId != null) // incorrect menu id passed { Services.Notifier.Error(T("Menu not found: {0}", menuId)); return(RedirectToAction("Index")); } if (model == null) { model = new NavigationManagementViewModel(); } if (model.MenuItemEntries == null || !model.MenuItemEntries.Any()) { model.MenuItemEntries = _menuService.GetMenuParts(currentMenu.Id).Select(CreateMenuItemEntries).OrderBy(menuPartEntry => menuPartEntry.Position, new FlatPositionComparer()).ToList(); } model.MenuItemDescriptors = _menuManager.GetMenuItemTypes(); model.Menus = menus; model.CurrentMenu = currentMenu; // need action name as this action is referenced from another action return(View(model)); }