private List <NccPermissionDetails> GetSelectedPermissionDetails(List <ModuleViewModel> modules, NccUser user, bool isExtraAllowPermission)
        {
            var permissionDetailsList = new List <NccPermissionDetails>();

            foreach (var module in modules)
            {
                foreach (var adminMenu in module.AdminMenus)
                {
                    foreach (var item in adminMenu.MenuItems)
                    {
                        if (item.IsChecked)
                        {
                            var pd = new NccPermissionDetails()
                            {
                                Action     = item.Action,
                                Controller = item.Controller,
                                ModuleName = module.ModuleName,
                                Name       = adminMenu.Name,
                                Order      = item.Order,
                            };
                            if (isExtraAllowPermission)
                            {
                                pd.AllowUser = user;
                            }
                            else
                            {
                                pd.DenyUser = user;
                            }
                            permissionDetailsList.Add(pd);
                        }
                    }
                }

                foreach (var webSiteMenu in module.SiteMenus)
                {
                    foreach (var item in webSiteMenu.MenuItems)
                    {
                        if (item.IsChecked)
                        {
                            var pd = new NccPermissionDetails()
                            {
                                Action     = item.Action,
                                Controller = item.Controller,
                                ModuleName = module.ModuleName,
                                Name       = webSiteMenu.Name,
                                Order      = item.Order
                            };
                            if (isExtraAllowPermission)
                            {
                                pd.AllowUser = user;
                            }
                            else
                            {
                                pd.DenyUser = user;
                            }
                            permissionDetailsList.Add(pd);
                        }
                    }
                }
            }

            return(permissionDetailsList);
        }
Example #2
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));
        }