Exemple #1
0
 /// <summary>
 /// Assigns Users to a role.
 /// </summary>
 /// <param name="id">The ID of the role to assign users to.</param>
 /// <param name="request">A <see cref="AssignUsersRequest" /> containing the user IDs to assign to the role.</param>
 /// <returns>A <see cref="Task"/> that represents the asynchronous assign operation.</returns>
 public Task AssignUsersAsync(string id, AssignUsersRequest request)
 {
     return(Connection.PostAsync <AssignUsersRequest>("roles/{id}/users", request, null, null,
                                                      new Dictionary <string, string>
     {
         { "id", id },
     }, null, null));
 }
Exemple #2
0
        public async Task Test_roles_assign_user_to_role()
        {
            // Add a new role
            var newRoleRequest = new RoleCreateRequest
            {
                Name        = $"{Guid.NewGuid():N}role",
                Description = $"{Guid.NewGuid():N}description",
            };
            var role = await _apiClient.Roles.CreateAsync(newRoleRequest);

            role.Should().NotBeNull();
            role.Name.Should().Be(newRoleRequest.Name);
            role.Description.Should().Be(newRoleRequest.Description);

            // Create a user
            var newUserRequest = new UserCreateRequest
            {
                Connection    = _connection.Name,
                Email         = $"{Guid.NewGuid():N}@nonexistingdomain.aaa",
                EmailVerified = true,
                Password      = Password
            };
            var user = await _apiClient.Users.CreateAsync(newUserRequest);

            // Assign a user to the role
            var assignUsersRequest = new AssignUsersRequest
            {
                Users = new[]
                {
                    user.UserId
                }
            };
            await _apiClient.Roles.AssignUsersAsync(role.Id, assignUsersRequest);

            // Ensure the user is assigned to the role
            var assignedUsers = await _apiClient.Roles.GetUsersAsync(role.Id);

            assignedUsers.Should().NotBeNull();
            assignedUsers.First().UserId.Should().Be(user.UserId);

            // Clean Up
            await _apiClient.Roles.DeleteAsync(role.Id);

            await _apiClient.Users.DeleteAsync(user.UserId);
        }
Exemple #3
0
        public async Task Test_roles_crud_sequence()
        {
            // Add a new role
            var newRoleRequest = new RoleCreateRequest
            {
                Name        = $"{Guid.NewGuid():N}role",
                Description = $"{Guid.NewGuid():N}description",
            };
            var newRoleResponse = await _apiClient.Roles.CreateAsync(newRoleRequest);

            newRoleResponse.Should().NotBeNull();
            newRoleResponse.Name.Should().Be(newRoleRequest.Name);
            newRoleResponse.Description.Should().Be(newRoleRequest.Description);

            // Update the role
            var updateRoleRequest = new RoleUpdateRequest
            {
                Name = $"{Guid.NewGuid():N}role",
            };
            var updateRoleResponse = await _apiClient.Roles.UpdateAsync(newRoleResponse.Id, updateRoleRequest);

            updateRoleResponse.Should().NotBeNull();
            updateRoleResponse.Name.Should().Be(updateRoleRequest.Name);

            // Get a single role
            var role = await _apiClient.Roles.GetAsync(newRoleResponse.Id);

            role.Should().NotBeNull();
            role.Name.Should().Be(updateRoleResponse.Name);

            // Create a user
            var newUserRequest = new UserCreateRequest
            {
                Connection    = _connection.Name,
                Email         = $"{Guid.NewGuid():N}@nonexistingdomain.aaa",
                EmailVerified = true,
                Password      = Password
            };
            var user = await _apiClient.Users.CreateAsync(newUserRequest);

            // Assign a user to the role
            var assignUsersRequest = new AssignUsersRequest
            {
                Users = new[]
                {
                    user.UserId
                }
            };
            await _apiClient.Roles.AssignUsersAsync(role.Id, assignUsersRequest);

            // Ensure the user is assigned to the role
            var assignedUsers = await _apiClient.Roles.GetUsersAsync(role.Id);

            assignedUsers.Should().NotBeNull();
            assignedUsers.First().UserId.Should().Be(user.UserId);

            // Ensure the Role is assigned to user
            var assignedRoles = await _apiClient.Users.GetRolesAsync(user.UserId, new PaginationInfo());

            assignedRoles.Should().NotBeNull();
            assignedRoles.First().Id.Should().Be(role.Id);

            // Delete the role and ensure we get an exception when trying to fetch them again
            await _apiClient.Roles.DeleteAsync(role.Id);

            Func <Task> getFunc = async() => await _apiClient.Roles.GetAsync(role.Id);

            getFunc.Should().Throw <ErrorApiException>().And.ApiError.Error.Should().Be("Not Found");

            // Delete the user
            await _apiClient.Users.DeleteAsync(user.UserId);
        }
Exemple #4
0
 /// <summary>
 /// Assigns Users to a role.
 /// </summary>
 /// <param name="id">The ID of the role to assign users to.</param>
 /// <param name="request">A <see cref="AssignUsersRequest" /> containing the user IDs to assign to the role.</param>
 /// <returns>A <see cref="Task"/> that represents the asynchronous assign operation.</returns>
 public Task AssignUsersAsync(string id, AssignUsersRequest request)
 {
     return(Connection.SendAsync <AssignUsersRequest>(HttpMethod.Post, BuildUri($"roles/{EncodePath(id)}/users"), request, DefaultHeaders));
 }