public IActionResult GetPermissionsInfo(int id, int[] data) { //获取该角色已有的权限 var rolePermission = _permissionService.GetPermissionsByRoleId(id).ToList(); var infos = new List <PermissionOption>(); for (int i = 0; i < data.Length; i++) { var pers = _permissionService.GetPermissionById(data[i]); var temp = new PermissionOption { Name = pers.Name, Category = pers.Category, Id = pers.Id }; if (rolePermission.Contains(pers)) { //已有权限 temp.Selected = true; } else { temp.Selected = false; } infos.Add(temp); } return(Success(infos)); }
public List <PermissionMultiSelectModel> GetPermissions(int userId, List <Role> roles) { //获取用户已有的角色 var userPermissions = _permissionService.GetPermissionsByUserId(userId).ToList(); //获取该该用户所有角色的的权限 var allPermissions = new List <Permission>(); foreach (var role in roles) { allPermissions.AddRange(_permissionService.GetPermissionsByRoleId(role.Id).ToList()); } //去除重复元素 allPermissions = allPermissions.Distinct().ToList(); //获取所有的权限类型 var categorys = _menuService.GetBaseMenus().ToList(); var multiSelectModel = new List <PermissionMultiSelectModel>(); foreach (var category in categorys) { //根据权限类型获取权限 // var tempPermissions = _permissionService.GetPermissionsByCategory(category.Name).ToList(); var tempPermissions = allPermissions.Where(x => x.Category == category.Name).ToList(); var options = new List <PermissionOption>(); if (tempPermissions != null) { foreach (var pers in tempPermissions) { var option = new PermissionOption { Id = pers.Id, Name = pers.Name }; //判断给角色是否已有该权限 if (userPermissions.Contains(pers)) { option.Selected = true; } options.Add(option); } } multiSelectModel.Add( new PermissionMultiSelectModel { Options = options, Optgroup = category.Name }); } return(multiSelectModel); }
public List <PermissionMultiSelectModel> GetPermissionsForRole(int id) { //获取该角色已有的权限 var rolePermission = _permissionService.GetPermissionsByRoleId(id).ToList(); //获取所有的权限类型 var categorys = _menuService.GetBaseMenus().ToList(); var multiSelectModel = new List <PermissionMultiSelectModel>(); foreach (var category in categorys) { //根据权限类型获取权限 var tempPermissions = _permissionService.GetPermissionsByCategory(category.Name).ToList(); var options = new List <PermissionOption>(); if (tempPermissions != null) { foreach (var pers in tempPermissions) { var option = new PermissionOption { Id = pers.Id, Name = pers.Name }; //判断给角色是否已有该权限 if (rolePermission.Contains(pers)) { option.Selected = true; } options.Add(option); } } multiSelectModel.Add( new PermissionMultiSelectModel { Options = options, Optgroup = category.Name }); } return(multiSelectModel); }