public IActionResult EditUser(Guid?id, string returnUrl = null) { ViewBag.ReturnUrl = Url.IsLocalUrl(returnUrl) ? returnUrl : Url.RouteUrl("userIndex"); ViewBag.SysRoleList = _sysRoleService.GetAllRoles().Select(o => new SelectListItem() { Value = o.Id.ToString(), Text = o.Name }).ToList(); if (id != null) { var model = _sysUserService.GetById(id.Value); if (model == null) { return(Redirect(ViewBag.ReturnUrl)); } var sysUserRole = _sysUserRoleService.GetAll().FirstOrDefault(o => o.UserId == id); if (!model.IsAdmin) { ViewBag.SysRoleList = _sysRoleService.GetAllRoles().Select(o => new SelectListItem() { Value = o.Id.ToString(), Text = o.Name, Selected = (o.Id == sysUserRole.RoleId) }).ToList(); } return(View(model)); } return(View()); }
/// <summary> /// 编辑用户 /// </summary> /// <param name="id"> /// </param> /// <returns> /// </returns> public async Task <IActionResult> EditAsync(string id) { //编辑用户所在部门和角色 var item = new IdentityUser(); if (!string.IsNullOrEmpty(id)) { item = await _userManager.FindByIdAsync(id); } var depid = _iDepartmentService.GetAll(a => a.SysDepartmentSysUsers.Any(b => b.SysUserId.Equals(id))).Select(a => a.Id); ViewBag.DepartmentId = new MultiSelectList(_iDepartmentService.GetAll().Select(a => new { a.Id, Name = "(" + a.SystemId + ")" + a.Name }), "Id", "Name", depid); var roleIds = _iSysUserRoleService.GetAll(a => a.UserId.Equals(id)).Select(a => a.RoleId); ViewBag.SysRolesId = new MultiSelectList(_sysRoleService.Roles.Select(a => new { a.Id, a.Name }), "Id", "Name", roleIds); var config = new MapperConfiguration(a => a.CreateMap <IdentityUser, SysUserEditModel>()); var aa = config.CreateMapper().Map <SysUserEditModel>(item); return(View(aa)); }
/// <summary> /// 获取权限内的所有的菜单列表 /// </summary> /// <param name="sysUser"></param> /// <returns></returns> private List <Category> GerMyCategoryList(SysUser sysUser) { var list = this._categoryService.GetAll(); if (list == null) { return(null); } if (sysUser.IsAdmin) { return(list); } //获取权限数据 var sysUserRoles = _sysUserRoleService.GetAll();//获取所有的用户角色信息 if (sysUserRoles == null || !sysUserRoles.Any()) { return(null); } //获取当前用户所有的角色信息 var roleIds = sysUserRoles.Where(o => o.UserId == sysUser.Id).Select(x => x.RoleId).Distinct().ToList(); var sysPermissions = _sysPermissionService.GetAll();//获取所有的用户角色权限信息 if (sysPermissions == null || !sysPermissions.Any()) { return(null); } var categoryIds = sysPermissions.Where(o => roleIds.Contains(o.RoleId)).Select(o => o.CategoryId).Distinct().ToList(); if (!categoryIds.Any()) { return(null); } list = list.Where(o => categoryIds.Contains(o.Id)).ToList(); return(list); }
public List <Category> GetMyCategories() { var cateList = _categoryService.GetAll(); var user = GetCurrentUser(); if (user == null) { return(null); } if (user.IsAdmin) { return(cateList); } var roleList = _sysUserRoleService.GetAll(); if (roleList == null || roleList?.Count <= 0) { return(null); } var roleIds = roleList.Where(o => o.UserId == user.UserGuid).Select(x => x.RoleId).Distinct().ToList(); var permissionList = _sysPermissionService.GetAll(); if (permissionList == null || permissionList.Count <= 0) { return(null); } var list = permissionList.Where(o => roleIds.Contains(o.RoleId)).Select(x => x.CategoryId).Distinct().ToList(); if (list.Count <= 0) { return(null); } var result = cateList.Where(o => list.Contains(o.Id)).Distinct().ToList(); return(result); }
/// <summary> /// 私有方法,获取当前用户的方法数据 /// </summary> /// <param name="user"></param> /// <returns></returns> private List <Entities.Category> getMyCategories(Entities.SysUser user) { var list = _categoryService.GetAll(); if (user == null) { return(null); } if (user.IsAdmin) { return(list); } //获取权限数据 var userRoles = _sysUserRoleService.GetAll(); if (userRoles == null || !userRoles.Any()) { return(null); } var roleIds = userRoles.Where(o => o.UserId == user.Id).Select(x => x.RoleId).Distinct().ToList(); var permissionList = _sysPermissionServices.GetAll(); if (permissionList == null || !permissionList.Any()) { return(null); } var categoryIds = permissionList.Where(o => roleIds.Contains(o.RoleId)).Select(x => x.CategoryId).Distinct().ToList(); if (!categoryIds.Any()) { return(null); } list = list.Where(o => categoryIds.Contains(o.Id)).ToList(); return(list); }