Esempio n. 1
0
        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;
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
 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"));
 }
Esempio n. 6
0
        private PermissionViewModel GetPermissionViewModel(NccPermission permission)
        {
            var pvm = new PermissionViewModel(permission);

            return(pvm);
        }