コード例 #1
0
        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");
        }
コード例 #2
0
        /// <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));
            }
        }