public async Task GetAllAdminUserInTenant_Test() { CreateTenantDto dto = new CreateTenantDto() { TenancyName = "TestTenant", Name = "TestTenant", AdminPhoneNumber = "13851400000", IsActive = true }; var tenantDto = await _tenantAppService.CreateAsync(dto); CreateUserDto createUserDto = new CreateUserDto() { UserName = "******", Password = User.DefaultPassword, Name = "John", Surname = "Smith", Gender = "M", IdNumber = "320101198001010021", PhoneNumber = "13851400001", OfficePhoneNumber = "025-86328888", City = "Nanjing", EmailAddress = "*****@*****.**", ExpireDate = new DateTime(2050, 12, 31), IsActive = true }; var userDto = await _omUserAppService.CreateAdminUserInTenantAsync(tenantDto.Id, createUserDto); PagedAdminUserResultRequestDto pagedDto = new PagedAdminUserResultRequestDto() { Keyword = string.Empty, IsActive = true }; var allAdmins = await _omUserAppService.GetAllAdminUserInTenantAsync(tenantDto.Id, pagedDto); allAdmins.TotalCount.ShouldBe(2); allAdmins.Items[0].UserName.ShouldBe("admin"); allAdmins.Items[1].UserName.ShouldBe("TestUser"); }
/// <summary> /// 运维专用:获取指定租户的全部管理员用户 /// </summary> /// <param name="tenantId"></param> /// <returns></returns> public async Task <PagedResultDto <UserDto> > GetAllAdminUserInTenantAsync(int tenantId, PagedAdminUserResultRequestDto input) { using (CurrentUnitOfWork.SetTenantId(tenantId)) { var adminRole = await _roleManager.GetRoleByNameAsync(StaticRoleNames.Tenants.Admin); IList <User> adminUsers = await _userManager.GetUsersInRoleAsync(adminRole.Name); if (!string.IsNullOrEmpty(input.Keyword)) { adminUsers = adminUsers.Where( u => u.UserName.Contains(input.Keyword) || u.Name.Contains(input.Keyword) || u.EmailAddress.Contains(input.Keyword)).ToList(); } if (input.IsActive.HasValue) { adminUsers = adminUsers.Where(u => u.IsActive == input.IsActive.Value).ToList(); } int totalCount = adminUsers.Count; var query = adminUsers.AsQueryable(); query = PagingHelper.ApplySorting <User, long>(query, new PagedAndSortedResultRequestDto() { Sorting = "CreationTime DESC" }); query = PagingHelper.ApplyPaging <User, long>(query, input); adminUsers = query.ToList(); List <UserDto> userDtos = new List <UserDto>(); foreach (User adminUser in adminUsers) { UserDto userDto = ObjectMapper.Map <UserDto>(adminUser); userDto.OrgUnitNames = await _userManager.GetOrgUnitsOfUserAsync(adminUser); userDto.RoleNames = await _userManager.GetRolesOfUserAsync(adminUser); userDto.IsAdmin = userDto.RoleNames.Contains("Admin"); userDto.Permissions = await _userManager.GetPermissionsOfUserAsync(adminUser); userDtos.Add(userDto); } return(new PagedResultDto <UserDto>(totalCount, userDtos)); } }