public async Task <IActionResult> RemoveFromPatrol(RemoveUserDto dto) { if (User.RoleInPatrol(dto.PatrolId).CanMaintainUsers()) { await _patrolRepository.DeletePatrolUser(dto.PatrolId, dto.UserId); //TODO, if the user asn't current user, mark their tokens to supersede //refresh the users jwt to match the above change if (dto.UserId == User.UserId()) { Response.SendNewToken(await _authenticationService.IssueJwtToUser(User.UserId(), User.TokenGuid())); } else { //supersede any tokens for the user var patrolUsers = (await _patrolRepository.GetUsersForPatrol(dto.PatrolId)).ToList(); patrolUsers = patrolUsers.Where(x => x.Id != User.UserId()).ToList(); await _tokenRepository.SupersedeActiveTokensForUsers(patrolUsers.Select(x => x.Id).ToList(), _systemClock.UtcNow.UtcDateTime); } return(Ok()); } else { return(Forbid()); } }
public async Task <ActionResult> RemoveDepartment([FromBody] RemoveUserDto userDto) { if (!IsAvailableOperation()) { return(BadRequest()); } await _userService.Remove(userDto); AddLog(Enums.LogType.Create, LogMessage.CreateSuccessByIdMessage(LogMessage.UserEntityName, userDto.Id, LogMessage.RemoveAction, UserId)); return(Ok()); }
/// <summary> /// 删除用户 /// </summary> /// <param name="deleteUserDto">删除用户信息</param> /// <returns>返回用户删除结果</returns> public Result RemoveUser(RemoveUserDto deleteUserDto) { if (deleteUserDto?.Ids.IsNullOrEmpty() ?? true) { return(Result.FailedResult("没有指定任何要删除的用户信息")); } using (var businessWork = WorkManager.Create()) { var deleteResult = userService.Remove(deleteUserDto.Ids); if (!deleteResult.Success) { return(deleteResult); } var commitResult = businessWork.Commit(); return(commitResult.ExecutedSuccess ? Result.SuccessResult("删除成功") : Result.FailedResult("删除失败")); } }
public async Task Remove(RemoveUserDto userDto) { var user = await _userManager.Users.FirstOrDefaultAsync(x => x.Id == userDto.Id && x.IsActive); if (user == null) { throw new NotFoundException("User", userDto.Id); } var fileStorageRepository = DataContextManager.CreateRepository <IFileStorageRepository>(); var fileStorages = await fileStorageRepository.GetByUserId(user.Id); using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { user.IsActive = false; var result = await _userManager.UpdateAsync(user); if (!result.Succeeded) { scope.Dispose(); throw new UserManagerException("remove", user.Email); } scope.Complete(); } fileStorages.SelectMany(s => s.Permissions) .Where(x => !x.EndDate.HasValue) .ToList() .ForEach(perm => { perm.EndDate = DateTime.UtcNow; }); await fileStorageRepository.Update(fileStorages); }
/// <summary> /// 删除用户 /// </summary> /// <param name="removeUserDto">删除信息</param> /// <returns>返回执行结果</returns> public Result RemoveUser(RemoveUserDto removeUserDto) { return(userBusiness.RemoveUser(removeUserDto)); }