コード例 #1
0
        public ActionResult RolePermission(string roleId)
        {
            #region Create Role Permissions

            List <RolePermissionsViewModel> rolePermissions = new List <RolePermissionsViewModel>();
            foreach (var item in db.Permissions.ToList())
            {
                if (item.ParentId != null)
                {
                    RolePermissionsViewModel permission = new RolePermissionsViewModel()
                    {
                        PermissionID    = item.Id,
                        PermissionTitle = item.Title,
                        ControllerName  = item.ControllerName,
                        Access          = db.RolePermissions
                                          .Where(a => a.RoleId == roleId && a.PermissionId == item.Id).Any()
                    };
                    rolePermissions.Add(permission);
                }
            }

            #endregion

            ViewBag.RoleName = db.Roles.Find(roleId).Name;
            ViewBag.RoleID   = roleId;

            ViewBag.TreeItems = rolePermissions.OrderBy(a => a.PermissionTitle).Select(r => new TreeViewItemModel()
            {
                Text    = r.PermissionTitle,
                Id      = r.PermissionID.ToString(),
                Checked = r.Access
            }).ToList();

            return(View(rolePermissions));
        }
コード例 #2
0
        /// <summary>
        /// Assigns the role permission.
        /// </summary>
        /// <param name="role">The role.</param>
        /// <returns></returns>

        public Response <RolePermissionsViewModel> AssignRolePermission(RolePermissionsViewModel role)
        {
            string apiUrl   = baseRoute + "assignRolePermission";
            var    response = communicationManager.Post <RolePermissionsModel, Response <RolePermissionsModel> >(role.ToEntity(), apiUrl);

            return(response.ToModel());
        }
コード例 #3
0
        public JsonResult AssignRolePermission(RolePermissionsViewModel role)
        {
            var response = securityRepository.AssignRolePermission(role);

            ClearCache(response);
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
コード例 #4
0
        public async Task <IActionResult> PermissionsList(long roleId)
        {
            var vm = new RolePermissionsViewModel(roleId);

            vm.PermissionOptions = await getPermissionsService.GetAllPermissionsAsync();

            return(View("PermissionsList", vm));
        }
コード例 #5
0
        public static RolePermissionsModel ToEntity(this RolePermissionsViewModel model)
        {
            if (model == null)
            {
                return(null);
            }

            var role = new RoleModel();

            if (model.Role != null)
            {
                var roleModel =
                    role = model.Role.ToEntity();
            }

            var Modules = new List <ModuleModel>();

            if (model.Modules != null)
            {
                model.Modules.ForEach(delegate(ModuleViewModel modules)
                {
                    var transformedModel = modules.ToEntity();
                    Modules.Add(transformedModel);
                }
                                      );
            }
            else
            {
                Modules = null;
            }

            var Features = new List <FeatureModel>();

            if (model.Features != null)
            {
                model.Features.ForEach(delegate(FeatureViewModel features)
                {
                    var transformedModel = features.ToEntity();
                    Features.Add(transformedModel);
                }
                                       );
            }
            else
            {
                Features = null;
            }

            var entity = new RolePermissionsModel
            {
                Role     = role,
                Modules  = Modules,
                Features = Features
            };

            return(entity);
        }
コード例 #6
0
        public ActionResult AddRolePermissions(short roleId)
        {
            RolePermissionsViewModel viewModel = new RolePermissionsViewModel();
            GetRolesResponse rolesResponse = roleService.GetRoles(new GetRolesRequest()
            {
                AccountId = this.Identity.ToAccountID()
            });
            if (rolesResponse != null && !rolesResponse.RoleViewModel.Any(r => r.RoleId == roleId))
                return RedirectToAction("NotFound", "Error");
            GetModulesResponse modulesResponse = roleService.GetModules(new GetModulesRequest()
            {
                AccountID = this.Identity.ToAccountID()
            });
            if (!this.Identity.IsSTAdmin())
            {
                if(rolesResponse.SubscriptionId == 2)
                    rolesResponse.RoleViewModel = rolesResponse.RoleViewModel.Where(s => s.RoleName != "Account Administrator");
                else
                    rolesResponse.RoleViewModel = rolesResponse.RoleViewModel.Where(s => s.RoleName != "Account Administrator" && s.RoleName != "Marketing Administrator" && s.RoleName != "Sales Administrator" && s.RoleName != "Marketing");


                modulesResponse.ModuleViewModel = modulesResponse.ModuleViewModel.Where(s => s.ModuleId != (byte)AppModules.AccountSettings);
            }
            viewModel.Modules = modulesResponse.ModuleViewModel;
            viewModel.Roles = rolesResponse.RoleViewModel;
            GetModulesForRoleResponse response = roleService.GetModulesForRole(new GetModulesForRoleRequest()
            {
                roleId = roleId
            });
            foreach (var item in response.moduleIds)
            {
                foreach (var module in viewModel.Modules)
                {
                    if (module.ModuleId == item)
                    {
                        module.IsSelected = true;
                    }
                    if (module.SubModules != null)
                    {
                        foreach (var submodule in module.SubModules)
                        {
                            if (submodule.ModuleId == item)
                            {
                                submodule.IsSelected = true;
                            }
                        }
                    }
                }
            }
            viewModel.SelectedRole = roleId;
            return View("RolePermissions", viewModel);
        }
コード例 #7
0
        public ActionResult Index()
        {
            var model = new RolePermissionsViewModel
            {
                RolesGridViewModel       = GetRolesGridViewModel(),
                PermissionsTreeViewModel = GetPermissionsTreeViewModel(),

                GetRolePermissionsUrl    = Url.RouteUrl("GetRolePermissions"),
                UpdateRolePermissionsUrl = Url.RouteUrl("RolePermissionsUpdate")
            };

            return(View(model));
        }
コード例 #8
0
 public JsonResult EditPermission(RolePermissionsViewModel permission)
 {
     try
     {
         var role            = _db.AspNetRoles.Find(permission.Id.ToString());
         var rolePermissions = _db.RolePermissions.Where(x => x.RoleId == role.Id);
         foreach (var rolePermission in rolePermissions)
         {
             _db.RolePermissions.Remove(rolePermission);
         }
         _db.SaveChanges();
         if (role != null)
         {
             if (!string.IsNullOrWhiteSpace(permission.RoleName))
             {
                 role.Name = permission.RoleName;
             }
             if (!string.IsNullOrWhiteSpace(permission.RoleFriendlyName))
             {
                 role.FriendlyName = permission.RoleFriendlyName;
             }
             if (!string.IsNullOrWhiteSpace(permission.RoleDescription))
             {
                 role.Description = permission.RoleDescription;
             }
             _db.Entry(role).State = EntityState.Modified;
             var permissions       = permission.Permissions.Split(',');
             var newRolePermission = new RolePermission();
             foreach (var perm in permissions)
             {
                 var permId = int.Parse(perm);
                 var existRolePermission = _db.RolePermissions.Any(x => x.RoleId == role.Id.ToString() && x.PermissionId == permId);
                 if (existRolePermission)
                 {
                     //Role Permission Already Exist
                     continue;
                 }
                 newRolePermission.RoleId       = role.Id;
                 newRolePermission.PermissionId = int.Parse(perm);
                 _db.RolePermissions.Add(newRolePermission);
                 _db.SaveChanges();
             }
         }
     }
     catch (Exception ex)
     {
         LogHelper.LogException(User.Identity.Name, ex, "Error While adding Role Permission (Post)");
         return(null);
     }
     return(Json(permission, JsonRequestBehavior.AllowGet));
 }
コード例 #9
0
        public void AssignRolePermission_Success()
        {
            // Act
            var lstRolePermissionsViewModel = new List <RolePermissionsViewModel>();
            var rolePermissionsViewModel    = new RolePermissionsViewModel();
            var role = new RoleViewModel();

            role.RoleID = 1;
            rolePermissionsViewModel.Role = role;
            var modules     = new List <ModuleViewModel>();
            var permissions = new List <PermissionViewModel>();

            permissions.Add(new PermissionViewModel()
            {
                PermissionID = 1
            });
            rolePermissionsViewModel.Modules = modules;
            modules.Add(new ModuleViewModel()
            {
                ModuleID = 1, Permissions = permissions
            });

            lstRolePermissionsViewModel.Add(new RolePermissionsViewModel {
                Role = role, Modules = modules
            });

            var features          = new List <FeatureViewModel>();
            var permissionFeature = new List <PermissionViewModel>();

            permissionFeature.Add(new PermissionViewModel()
            {
                PermissionID = 1
            });
            features.Add(new FeatureViewModel()
            {
                FeatureID = 1, Permissions = permissionFeature
            });
            rolePermissionsViewModel.Features = features;
            lstRolePermissionsViewModel.Add(new RolePermissionsViewModel {
                Role = role, Features = features
            });

            var result        = controller.AssignRolePermission(rolePermissionsViewModel);
            var jsonResponse  = result as JsonResult;
            var data          = result.Data;
            var modelResponse = data as Response <RolePermissionsViewModel>;
            var rowAffected   = modelResponse.RowAffected;

            // Assert
            Assert.IsTrue(rowAffected > 0);
        }
コード例 #10
0
 public PartialViewResult EditPermission(int id)
 {
     try
     {
         var permissionsGroups = _db.Permissions.Where(r => r.Status != (int)GeneralEnums.StatusEnum.Deleted).GroupBy(x => x.PageName);
         var rolePermissions   = _db.RolePermissions.Where(x => x.RoleId == id.ToString() && x.Permission.Status != (int)GeneralEnums.StatusEnum.Deleted);
         var currentRole       = _db.AspNetRoles.FirstOrDefault(x => x.Id == id.ToString());
         if (currentRole == null)
         {
             //Role not exist
             return(null);
         }
         var result = new RolePermissionsViewModel
         {
             Id               = id,
             RoleName         = currentRole.Name,
             RoleFriendlyName = currentRole.FriendlyName,
             RoleDescription  = currentRole.Description,
             PermissionGroups = new List <PermissionGroups>()
         };
         foreach (var permissions in permissionsGroups)
         {
             result.PermissionGroups.Add(new PermissionGroups
             {
                 PageName       = permissions.Key,
                 PermissionsKey = permissions.Select(x => new PermissionViewModel
                 {
                     Id            = x.Id,
                     Status        = x.Status,
                     PageUrl       = x.PageUrl,
                     PermissionKey = x.PermissionKey,
                     PageName      = x.PageName,
                     Description   = x.Description,
                     CreatedBy     = x.CreatedBy,
                     CreatedOn     = x.CreatedOn,
                     DeletedOn     = x.DeletedOn,
                     IsSelected    = rolePermissions.Any(r => r.PermissionId == x.Id)
                 }).ToDictionary(x => x.Id)
             });
         }
         return(PartialView("_RolePermission", result));
     }
     catch (Exception ex)
     {
         LogHelper.LogException(User.Identity.Name, ex, "Error While editing Permission (Get)");
         return(null);
     }
 }
コード例 #11
0
 public JsonResult InsertRolePermissions(string rolePermissionViewodel)
 {
     RolePermissionsViewModel PermissionViewodel = JsonConvert.DeserializeObject<RolePermissionsViewModel>(rolePermissionViewodel);
     InsertRolePermissionsResponse response = roleService.InsertRolePermissions(new InsertRolePermissionsRequest()
     {
         rolePermissionsViewModel = PermissionViewodel
     });
     if (response.Exception == null)
     {
         int accountId = this.Identity.ToAccountID();
         cachingService.AddUserPermissions(accountId);
     }
     return Json(new
     {
         success = true,
         response = ""
     }, JsonRequestBehavior.AllowGet);
 }
コード例 #12
0
        public ActionResult RolePermissionsGVPAddNew([ModelBinder(typeof(DevExpressEditorsBinder))] App.Marriage.Models.RoleMV.RolePermissionsViewModel item)
        {
            var model = new RolePermissionsViewModel();

            //if (ModelState.IsValid)
            //{
            try
            {
                // Insert here a code to insert the new item in your model
            }
            catch (Exception e)
            {
                ViewData["EditError"] = e.Message;
            }
            //}
            //else
            //    ViewData["EditError"] = "Please, correct all errors.";
            return(PartialView("~/Views/RolePermissions/_RolePermissionsGVP.cshtml", model));
        }
コード例 #13
0
        public ActionResult RolePermissionsGVPUpdate([ModelBinder(typeof(DevExpressEditorsBinder))] App.Marriage.Models.RoleMV.RolePermissionsViewModel item)
        {
            //if (ModelState.IsValid)
            //{
            try
            {
                RolePermissionsDAL RP = new RolePermissionsDAL(item.Id);
                RP.RolePermissions.IsActive = item.IsActive;
                RP.Update();
                // Insert here a code to update the item in your model
            }
            catch (Exception e)
            {
                ViewData["EditError"] = e.Message;
            }
            //}
            //else
            //    ViewData["EditError"] = "Please, correct all errors.";
            var model = RolePermissionsViewModel.GetRolePermissionsList();

            return(PartialView("~/Views/RolePermissions/_RolePermissionsGVP.cshtml", model));
        }
コード例 #14
0
        public ActionResult RolePermissionsGVP()
        {
            var model = RolePermissionsViewModel.GetRolePermissionsList();

            return(PartialView("~/Views/RolePermissions/_RolePermissionsGVP.cshtml", model));
        }
コード例 #15
0
ファイル: RoleController.cs プロジェクト: zszqwe/MvcBase
        public PartialViewResult EditRolePermission(int roleId)
        {
            var rolePermissions = new RolePermissionsViewModel(roleId, CurrentUser.UserId);

            return(PartialView(rolePermissions));
        }
コード例 #16
0
        public ActionResult Details(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }


            RoleViewModel roleVM;

            using (ApplicationDbContext context = new ApplicationDbContext())
            {
                IdentityRole role = context.Roles.Find(id);
                if (role == null)
                {
                    return(HttpNotFound());
                }

                roleVM = new RoleViewModel()
                {
                    Id = role.Id, Name = role.Name
                };
            }

            var empCategories = DbContext.EmployeeCategories.FirstOrDefault(x => x.RoleName == roleVM.Name);

            if (empCategories == null)
            {
                DbContext.EmployeeCategories.Add(new EmployeeCategories()
                {
                    RoleName = roleVM.Name,
                });
                empCategories = DbContext.EmployeeCategories.FirstOrDefault(x => x.RoleName == roleVM.Name);
                if (empCategories == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
            }

            var categories = DbContext.Category.ToList();

            var categorylist = new List <CategoryViewModel>();

            foreach (var cat in categories)
            {
                if (empCategories.Categories.Contains(cat))
                {
                    categorylist.Add(new CategoryViewModel()
                    {
                        Name   = cat.Name,
                        Id     = cat.Id,
                        Active = true,
                    });
                }
            }

            RolePermissionsViewModel rp = new RolePermissionsViewModel()
            {
                Role       = roleVM,
                Categories = categorylist,
            };

            return(View(rp));
        }