public async Task GetAllOrgUnitInTenant_Test() { CreateTenantDto createTenantDto = new CreateTenantDto() { TenancyName = "TestTenant", Name = "TestTenant", AdminPhoneNumber = "13851400000", IsActive = true }; var tenantDto = await _tenantAppService.CreateAsync(createTenantDto); CreateOrgUnitDto createOrgUnit1Dto = new CreateOrgUnitDto() { ParentId = null, DisplayName = "Ou1" }; var orgUnit1Dto = await _omOrgUnitAppService.CreateOrgUnitInTenantAsync(tenantDto.Id, createOrgUnit1Dto); CreateOrgUnitDto createOrgUnit2Dto = new CreateOrgUnitDto() { ParentId = null, DisplayName = "Ou2" }; var orgUnit2Dto = await _omOrgUnitAppService.CreateOrgUnitInTenantAsync(tenantDto.Id, createOrgUnit2Dto); GetOrgUnitsInput getOrgUnitsInput = new GetOrgUnitsInput() { Role = string.Empty }; var orgUnits = await _omOrgUnitAppService.GetAllOrgUnitInTenantAsync(tenantDto.Id, getOrgUnitsInput); orgUnits.Items.Count.ShouldBe(3); // 2 new created + 1 admin }
/// <summary> /// 运维专用:获取特定租户下的所有组织 /// </summary> /// <param name="tenantId"></param> /// <param name="input"></param> /// <returns></returns> public async Task <ListResultDto <OrgUnitDto> > GetAllOrgUnitInTenantAsync(int tenantId, GetOrgUnitsInput input) { using (CurrentUnitOfWork.SetTenantId(tenantId)) { var allOrgUnits = await _orgUnitRepository.GetAll().ToListAsync(); if (!string.IsNullOrEmpty(input.Role)) { var role = await _roleManager.GetRoleByNameAsync(input.Role); var orgUnitRoles = _orgUnitRoleRepository.GetAll() .Where(our => our.RoleId == role.Id); var excludeOrgUnitIds = await orgUnitRoles.Select(our => our.OrganizationUnitId).ToListAsync(); var excludeOrgUnits = allOrgUnits.Where(ou => excludeOrgUnitIds.Contains(ou.Id)).ToList(); foreach (OrganizationUnit orgUnit in excludeOrgUnits) { allOrgUnits.Remove(orgUnit); } } List <OrgUnitDto> orgUnitDtos = new List <OrgUnitDto>(); foreach (OrganizationUnit orgUnit in allOrgUnits) { orgUnitDtos.Add(await GenerateOrgUnitDtoAsync(orgUnit)); } return(new ListResultDto <OrgUnitDto>(orgUnitDtos)); } }
public async Task GetAllOrgUnitInTenant_FilterWithRole_Test() { CreateTenantDto createTenantDto = new CreateTenantDto() { TenancyName = "TestTenant", Name = "TestTenant", AdminPhoneNumber = "13851400000", IsActive = true }; var tenantDto = await _tenantAppService.CreateAsync(createTenantDto); // Prepare roles var createRoleDto1 = new CreateRoleDto() { Name = "Role1", DisplayName = "Test role1", Description = "Role1 for test", GrantedPermissions = new List <string>() { PermissionNames.Pages_Roles } }; var role1Dto = await _omRoleAppService.CreateRoleInTenantAsync(tenantDto.Id, createRoleDto1); var createRoleDto2 = new CreateRoleDto() { Name = "Role2", DisplayName = "Test role2", Description = "Role2 for test", GrantedPermissions = new List <string>() { PermissionNames.Pages_Users } }; var role2Dto = await _omRoleAppService.CreateRoleInTenantAsync(tenantDto.Id, createRoleDto2); // Prepare organization units CreateOrgUnitDto createOrgUnit1Dto = new CreateOrgUnitDto() { ParentId = null, DisplayName = "Ou1" }; var orgUnit1Dto = await _omOrgUnitAppService.CreateOrgUnitInTenantAsync(tenantDto.Id, createOrgUnit1Dto); await _omOrgUnitAppService.AddRoleToOrgUnitInTenantAsync(tenantDto.Id, new SetOrgUnitRoleDto() { OrgUnitId = orgUnit1Dto.Id, RoleId = role1Dto.Id }); CreateOrgUnitDto createOrgUnit2Dto = new CreateOrgUnitDto() { ParentId = null, DisplayName = "Ou2" }; var orgUnit2Dto = await _omOrgUnitAppService.CreateOrgUnitInTenantAsync(tenantDto.Id, createOrgUnit2Dto); await _omOrgUnitAppService.AddRoleToOrgUnitInTenantAsync(tenantDto.Id, new SetOrgUnitRoleDto() { OrgUnitId = orgUnit2Dto.Id, RoleId = role2Dto.Id }); // Query GetOrgUnitsInput getOrgUnitsInput = new GetOrgUnitsInput() { Role = "Role2" }; var orgUnits = await _omOrgUnitAppService.GetAllOrgUnitInTenantAsync(tenantDto.Id, getOrgUnitsInput); orgUnits.Items.Count.ShouldBe(2); // 1 new created + 1 admin }