示例#1
0
        public async Task AddUserToOrgUnit_Test()
        {
            CreateOrgUnitDto createOrgUnitDto = new CreateOrgUnitDto()
            {
                ParentId    = null,
                DisplayName = "Ou Test"
            };
            var orgUnitDto = await _orgUnitAppService.CreateAsync(createOrgUnitDto);

            CreateUserDto createUserDto = new CreateUserDto()
            {
                UserName    = "******",
                Password    = User.DefaultPassword,
                Name        = "John",
                Surname     = "Smith",
                PhoneNumber = "13851400000",
                IsActive    = true
            };
            var userDto = await _userAppService.CreateAsync(createUserDto);

            var getUser1Dto = await _userAppService.GetAsync(new EntityDto <long>(userDto.Id));

            getUser1Dto.OrgUnitNames.Length.ShouldBe(0);

            SetOrgUnitUserDto setOrgUnitUserDto = new SetOrgUnitUserDto()
            {
                UserId    = userDto.Id,
                OrgUnitId = orgUnitDto.Id
            };
            await _orgUnitAppService.AddUserToOrgUnitAsync(setOrgUnitUserDto);

            var getUser2Dto = await _userAppService.GetAsync(new EntityDto <long>(userDto.Id));

            getUser2Dto.OrgUnitNames.Length.ShouldBe(1);
        }
        /// <summary>
        /// 运维专用:对特定租户下的指定组织删除某一用户
        /// </summary>
        /// <param name="tenantId"></param>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task RemoveUserFromOrgUnitInTenantAsync(int tenantId, SetOrgUnitUserDto input)
        {
            using (CurrentUnitOfWork.SetTenantId(tenantId))
            {
                await CheckExistenceOfUserAndOrgUnitAsync(input);

                await _userManager.RemoveFromOrganizationUnitAsync(input.UserId, input.OrgUnitId);
            }
        }
        public async Task GetUsersInOrgUnitInTenant_Test()
        {
            CreateTenantDto createTenantDto = new CreateTenantDto()
            {
                TenancyName      = "TestTenant",
                Name             = "TestTenant",
                AdminPhoneNumber = "13851400000",
                IsActive         = true
            };
            var tenantDto = await _tenantAppService.CreateAsync(createTenantDto);

            CreateOrgUnitDto createOrgUnitDto = new CreateOrgUnitDto()
            {
                ParentId    = null,
                DisplayName = "Ou Test"
            };
            var orgUnitDto = await _omOrgUnitAppService.CreateOrgUnitInTenantAsync(tenantDto.Id, createOrgUnitDto);

            CreateUserDto createUser1Dto = new CreateUserDto()
            {
                UserName    = "******",
                Password    = User.DefaultPassword,
                Name        = "John",
                Surname     = "Smith",
                PhoneNumber = "13851400001",
                IsActive    = true
            };
            var user1Dto = await _omUserAppService.CreateUserInTenantAsync(tenantDto.Id, createUser1Dto);

            SetOrgUnitUserDto setOrgUnitUserDto = new SetOrgUnitUserDto()
            {
                UserId    = user1Dto.Id,
                OrgUnitId = orgUnitDto.Id
            };
            await _omOrgUnitAppService.AddUserToOrgUnitInTenantAsync(tenantDto.Id, setOrgUnitUserDto);

            CreateUserDto createUser2Dto = new CreateUserDto()
            {
                UserName     = "******",
                Password     = User.DefaultPassword,
                Name         = "Mike",
                Surname      = "Smith",
                PhoneNumber  = "13851400002",
                IsActive     = true,
                OrgUnitNames = new[] { "Ou Test" }
            };
            var user2Dto = await _omUserAppService.CreateUserInTenantAsync(tenantDto.Id, createUser2Dto);

            var orgUnitUsers = await _omOrgUnitAppService.GetUsersInOrgUnitInTenantAsync(tenantDto.Id, new EntityDto <long>(orgUnitDto.Id));

            orgUnitUsers.Count.ShouldBe(2);
        }
        private async Task CheckExistenceOfUserAndOrgUnitAsync(SetOrgUnitUserDto input)
        {
            try
            {
                var user = await _userManager.GetUserByIdAsync(input.UserId);

                var ou = await _orgUnitRepository.GetAsync(input.OrgUnitId);
            }
            catch (Exception exception)
            {
                throw new UserFriendlyException(exception.Message);
            }
        }
        public async Task RemoveUserFromOrgUnitInTenant_Test()
        {
            CreateTenantDto createTenantDto = new CreateTenantDto()
            {
                TenancyName      = "TestTenant",
                Name             = "TestTenant",
                AdminPhoneNumber = "13851400000",
                IsActive         = true
            };
            var tenantDto = await _tenantAppService.CreateAsync(createTenantDto);

            CreateOrgUnitDto createOrgUnitDto = new CreateOrgUnitDto()
            {
                ParentId    = null,
                DisplayName = "Ou Test"
            };
            var orgUnitDto = await _omOrgUnitAppService.CreateOrgUnitInTenantAsync(tenantDto.Id, createOrgUnitDto);

            CreateUserDto createUserDto = new CreateUserDto()
            {
                UserName    = "******",
                Password    = User.DefaultPassword,
                Name        = "John",
                Surname     = "Smith",
                PhoneNumber = "13851400001",
                IsActive    = true
            };
            var userDto = await _omUserAppService.CreateUserInTenantAsync(tenantDto.Id, createUserDto);

            var getUser1Dto = await _omUserAppService.GetUserInTenantAsync(tenantDto.Id, new EntityDto <long>(userDto.Id));

            getUser1Dto.OrgUnitNames.Length.ShouldBe(0);

            SetOrgUnitUserDto setOrgUnitUserDto = new SetOrgUnitUserDto()
            {
                UserId    = userDto.Id,
                OrgUnitId = orgUnitDto.Id
            };
            await _omOrgUnitAppService.AddUserToOrgUnitInTenantAsync(tenantDto.Id, setOrgUnitUserDto);

            var getUser2Dto = await _omUserAppService.GetUserInTenantAsync(tenantDto.Id, new EntityDto <long>(userDto.Id));

            getUser2Dto.OrgUnitNames.Length.ShouldBe(1);

            // Remove from organization unit
            await _omOrgUnitAppService.RemoveUserFromOrgUnitInTenantAsync(tenantDto.Id, setOrgUnitUserDto);

            var getUser3Dto = await _omUserAppService.GetUserInTenantAsync(tenantDto.Id, new EntityDto <long>(userDto.Id));

            getUser3Dto.OrgUnitNames.Length.ShouldBe(0);
        }
        /// <summary>
        /// 删除当前租户下指定组织的某一用户
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task RemoveUserFromOrgUnitAsync(SetOrgUnitUserDto input)
        {
            await CheckExistenceOfUserAndOrgUnitAsync(input);

            await _userManager.RemoveFromOrganizationUnitAsync(input.UserId, input.OrgUnitId);
        }
        /// <summary>
        /// 对当前租户下指定组织添加一个用户
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task AddUserToOrgUnitAsync(SetOrgUnitUserDto input)
        {
            await CheckExistenceOfUserAndOrgUnitAsync(input);

            await _userManager.AddToOrganizationUnitAsync(input.UserId, input.OrgUnitId);
        }