public IActionResult Delete([FromBody] RoleUsersDeleteDto parm)
        {
            var response = _userRoleService.Delete(m => m.RoleID == parm.RoleId &&
                                                   parm.UserIds.Contains(m.UserID)
                                                   );

            //更新登录会话记录
            foreach (var userId in parm.UserIds)
            {
                _tokenManager.RefreshSession(userId);
            }

            return(ToResponse(response));
        }
        public async Task <IActionResult> DeleteById(string id)
        {
            var res = await _sysUserRoleService.Delete(id);

            if (res)
            {
                messageModel.response = true;
            }
            else
            {
                messageModel.response = false;
                messageModel.msg      = "删除失败";
            }
            return(new JsonResult(messageModel));
        }
Exemplo n.º 3
0
        public async Task <ActionResult> EditAsync(string id, SysUserEditModel collection)
        {
            if (!ModelState.IsValid)
            {
                await EditAsync(id);

                ViewBag.SysRolesId = new MultiSelectList(_sysRoleService.Roles.Select(a => new { a.Id, a.Name }), "Id", "Name", collection.SysRolesId);

                ViewBag.DepartmentId = new MultiSelectList(_iDepartmentService.GetAll().Select(a => new { id = a.Id, Name = a.SystemId + a.Name }), "Id", "Name", collection.DepartmentId);

                return(View(collection));
            }

            if (string.IsNullOrEmpty(id))
            {
                //新建用户

                var config = new MapperConfiguration(a => a.CreateMap <SysUserEditModel, IdentityUser>());

                var user = config.CreateMapper().Map <IdentityUser>(collection);

                var identityResult = await _userManager.CreateAsync(user, collection.Password);

                if (!identityResult.Succeeded)
                {
                    foreach (var error in identityResult.Errors)
                    {
                        throw new Exception(error.Description);
                    }
                }

                id = user.Id;
            }
            else
            {
                //更新用户
                var user = await _userManager.FindByIdAsync(id);

                var config = new MapperConfiguration(a => a.CreateMap <SysUserEditModel, IdentityUser>());

                config.CreateMapper().Map(collection, user);

                var identityResult = await _userManager.UpdateAsync(user);

                if (!identityResult.Succeeded)
                {
                    foreach (var error in identityResult.Errors)
                    {
                        throw new Exception(error.Description);
                    }
                }

                if (!string.IsNullOrEmpty(collection.Password))
                {
                    var token = await _userManager.GeneratePasswordResetTokenAsync(user);

                    identityResult = await _userManager.ResetPasswordAsync(user, token, collection.Password);

                    if (!identityResult.Succeeded)
                    {
                        foreach (var error in identityResult.Errors)
                        {
                            throw new Exception(error.Description);
                        }
                    }
                }
            }

            //部门
            await _iSysDepartmentSysUserService.Delete(a => a.SysUserId == id);

            foreach (var DepartmentId in collection.DepartmentId)
            {
                await _iSysDepartmentSysUserService.SaveAsync(null, new SysDepartmentSysUser { SysDepartmentId = DepartmentId, SysUserId = id });
            }

            //删除角色
            await _iSysUserRoleService.Delete(a => a.UserId.Equals(id) && !collection.SysRolesId.Any(b => b == a.RoleId));

            //添加角色
            foreach (var s in collection.SysRolesId.Where(a => !_iSysUserRoleService.GetAll(b => b.UserId.Equals(id)).Any(c => c.RoleId == a)))
            {
                await _iSysUserRoleService.AddAsync(new IdentityUserRole <string>() { RoleId = s, UserId = id });
            }

            await _unitOfWork.CommitAsync();

            return(new EditSuccessResult(id));
        }