private void UpdateModelData(PermissionViewModel model, NccPermission permission) { model.Id = permission.Id; model.Rank = permission.Rank; model.Description = permission.Description; model.Group = permission.Group; model.MenuCount = permission.PermissionDetails.GroupBy(x => x.Controller).Count(); model.ModuleCount = permission.PermissionDetails.GroupBy(x => x.ModuleName).Count(); model.UserCount = permission.Users.Count; foreach (var module in model.Modules) { foreach (var menu in module.AdminMenus) { foreach (var item in menu.MenuItems.Where(x => x.IsChecked).ToList()) { var menuItem = permission.PermissionDetails.Where( x => x.ModuleName == module.ModuleName && x.Action == item.Action && x.Controller == item.Controller ).FirstOrDefault(); if (menuItem != null) { item.Id = menuItem.Id; } } } } }
public PermissionViewModel(NccPermission permission) { _permission = permission; Id = permission.Id; Group = permission.Group; Name = permission.Name; Description = permission.Description; Rank = permission.Rank; ModuleCount = permission.PermissionDetails.GroupBy(x => x.ModuleId).Count(); MenuCount = permission.PermissionDetails.GroupBy(x => x.Action).Count(); UserCount = permission.Users.Count; Modules = new List <ModuleViewModel>(); foreach (var item in GlobalContext.GetActiveModules()) { var module = new ModuleViewModel(); var menus = item.Menus; var adminMenus = menus .Where(x => x.Type == Menu.MenuType.Admin) .GroupBy(y => y.DisplayName, (key, g) => new { MenuName = key, Menu = g.FirstOrDefault(), Items = g.SelectMany(x => x.MenuItems).ToList() } ).ToList(); var siteMenus = menus.Where(x => x.Type == Menu.MenuType.WebSite) .GroupBy(y => y.DisplayName, (key, g) => new { MenuName = key, Menu = g.FirstOrDefault(), Items = g.SelectMany(z => z.MenuItems).ToList() } ).ToList(); foreach (var adminMenu in adminMenus) { var menu = new MenuViewModel() { Type = "Admin", Name = adminMenu.MenuName, Order = adminMenu.Menu.Order, MenuItems = GetMenuItems(adminMenu.Items, item.ModuleId), }; module.AdminMenus.Add(menu); } foreach (var webSiteMenu in siteMenus) { var menu = new MenuViewModel() { Type = "WebSite", Name = webSiteMenu.MenuName, Order = webSiteMenu.Menu.Order, MenuItems = GetMenuItems(webSiteMenu.Items, item.ModuleId), }; module.SiteMenus.Add(menu); } Modules.Add(module); } }
public UserViewModel(NccPermission permission) { _permission = permission; PermissionId = permission.Id; DenyModules = new List <ModuleViewModel>(); AllowModules = new List <ModuleViewModel>(); foreach (var item in GlobalContext.GetActiveModules()) { var module = new ModuleViewModel(); var menus = item.Menus; var adminMenus = menus .Where(x => x.Type == Menu.MenuType.Admin) .GroupBy(y => y.DisplayName, (key, g) => new { MenuName = key, Menu = g.FirstOrDefault(), Items = g.SelectMany(x => x.MenuItems).ToList() } ).ToList(); var siteMenus = menus.Where(x => x.Type == Menu.MenuType.WebSite) .GroupBy(y => y.DisplayName, (key, g) => new { MenuName = key, Menu = g.FirstOrDefault(), Items = g.SelectMany(z => z.MenuItems).ToList() } ).ToList(); foreach (var adminMenu in adminMenus) { var menu = new MenuViewModel() { Type = "Admin", Name = adminMenu.MenuName, Order = adminMenu.Menu.Order, MenuItems = GetMenuItems(adminMenu.Items, item.ModuleName), }; module.AdminMenus.Add(menu); } foreach (var webSiteMenu in siteMenus) { var menu = new MenuViewModel() { Type = "WebSite", Name = webSiteMenu.MenuName, Order = webSiteMenu.Menu.Order, MenuItems = GetMenuItems(webSiteMenu.Items, item.ModuleName), }; module.SiteMenus.Add(menu); } DenyModules.Add(module); AllowModules.Add(module); } }
public ActionResult CreateEditRoles(PermissionViewModel model) { var activeModules = GlobalContext.GetActiveModules(); ViewBag.Modules = activeModules; var permission = new NccPermission(); permission.Description = model.Description; permission.Rank = model.Rank; permission.Group = model.Group; permission.Name = model.Name; permission.Id = model.Id; var removePermissionDetailsIdList = new List <long>(); var addedPermissionDetails = new List <NccPermissionDetails>(); foreach (var item in model.Modules) { foreach (var am in item.AdminMenus) { foreach (var mi in am.MenuItems) { if (mi.IsChecked) { var permissionDetails = new NccPermissionDetails() { Id = mi.Id, ModuleName = item.ModuleName, Name = am.Name, Action = mi.Action, Controller = mi.Controller, PermissionId = permission.Id }; permission.PermissionDetails.Add(permissionDetails); if (permission.Id > 0 && permissionDetails.Id == 0) { addedPermissionDetails.Add(permissionDetails); } } else { if (mi.Id > 0) { removePermissionDetailsIdList.Add(mi.Id); } } } } foreach (var sm in item.SiteMenus) { foreach (var mi in sm.MenuItems) { if (mi.IsChecked) { var permissionDetails = new NccPermissionDetails() { Id = mi.Id, ModuleName = item.ModuleName, Name = sm.Name, Action = mi.Action, Controller = mi.Controller, PermissionId = permission.Id }; permission.PermissionDetails.Add(permissionDetails); if (permission.Id > 0 && permissionDetails.Id == 0) { addedPermissionDetails.Add(permissionDetails); } } else { if (mi.Id > 0) { removePermissionDetailsIdList.Add(mi.Id); } } } } } var(res, message) = _nccPermissionService.SaveOrUpdate(permission, addedPermissionDetails, removePermissionDetailsIdList); if (res) { TempData["SuccessMessage"] = message; return(RedirectToAction("CreateEditRoles")); } else { ViewBag.ErrorMessage = message; } return(View(model)); }
public ActionResult DeleteRole(NccPermission model) { _nccPermissionService.DeletePermission(model.Id); ShowMessage($"Role {model.Name} delete successfull.", NetCoreCMS.Framework.Core.Mvc.Views.MessageType.Success, showAfterRedirect: true, showCloseButton: true); return(RedirectToAction("ManageUserRoles")); }
private PermissionViewModel GetPermissionViewModel(NccPermission permission) { var pvm = new PermissionViewModel(permission); return(pvm); }