auth0 4.4.0 → 5.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.bundle/config +3 -2
- data/.circleci/config.yml +44 -0
- data/.env.example +2 -0
- data/.github/CODEOWNERS +1 -0
- data/.github/ISSUE_TEMPLATE/config.yml +8 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +39 -0
- data/.github/ISSUE_TEMPLATE/report_a_bug.md +55 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +35 -0
- data/.github/stale.yml +20 -0
- data/.gitignore +1 -2
- data/.rubocop.yml +2 -0
- data/.yardoc/checksums +22 -0
- data/.yardoc/complete +0 -0
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/CHANGELOG.md +334 -19
- data/CODE_OF_CONDUCT.md +3 -0
- data/DEPLOYMENT.md +56 -9
- data/Gemfile +10 -3
- data/README.md +260 -37
- data/Rakefile +4 -23
- data/auth0.gemspec +10 -9
- data/codecov.yml +22 -0
- data/examples/ruby-api/.gitignore +0 -6
- data/lib/auth0/algorithm.rb +5 -0
- data/lib/auth0/api/authentication_endpoints.rb +244 -237
- data/lib/auth0/api/v2/anomaly.rb +36 -0
- data/lib/auth0/api/v2/branding.rb +66 -0
- data/lib/auth0/api/v2/client_grants.rb +14 -5
- data/lib/auth0/api/v2/clients.rb +9 -6
- data/lib/auth0/api/v2/connections.rb +19 -7
- data/lib/auth0/api/v2/device_credentials.rb +5 -4
- data/lib/auth0/api/v2/guardian.rb +142 -0
- data/lib/auth0/api/v2/jobs.rb +77 -13
- data/lib/auth0/api/v2/log_streams.rb +78 -0
- data/lib/auth0/api/v2/logs.rb +11 -11
- data/lib/auth0/api/v2/organizations.rb +335 -0
- data/lib/auth0/api/v2/prompts.rb +70 -0
- data/lib/auth0/api/v2/resource_servers.rb +32 -8
- data/lib/auth0/api/v2/roles.rb +172 -0
- data/lib/auth0/api/v2/rules.rb +6 -2
- data/lib/auth0/api/v2/tickets.rb +55 -8
- data/lib/auth0/api/v2/users.rb +168 -28
- data/lib/auth0/api/v2/users_by_email.rb +3 -2
- data/lib/auth0/api/v2.rb +16 -2
- data/lib/auth0/client.rb +1 -1
- data/lib/auth0/exception.rb +34 -9
- data/lib/auth0/mixins/access_token_struct.rb +20 -0
- data/lib/auth0/mixins/api_token_struct.rb +10 -0
- data/lib/auth0/mixins/headers.rb +35 -0
- data/lib/auth0/mixins/httpproxy.rb +37 -14
- data/lib/auth0/mixins/initializer.rb +10 -26
- data/lib/auth0/mixins/permission_struct.rb +3 -0
- data/lib/auth0/mixins/validation.rb +346 -0
- data/lib/auth0/mixins.rb +9 -1
- data/lib/auth0/version.rb +1 -1
- data/lib/auth0.rb +1 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_change_password/should_trigger_a_password_reset.yml +63 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_incorrect_email.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_incorrect_password.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_invalid_audience.yml +55 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_login_successfully_with_a_custom_audience.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_login_successfully_with_a_default_scope.yml +119 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_saml_metadata/should_retrieve_SAML_metadata.yml +57 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_userinfo/should_fail_as_not_authorized.yml +55 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_userinfo/should_return_the_userinfo.yml +118 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_wsfed_metadata/should_retrieve_WSFED_metadata.yml +55 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/create_test_user.yml +58 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/delete_test_user.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Anomaly/_check_if_ip_is_blocked/should_return_200_response_code.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Anomaly/_remove_ip_block/should_remove_an_IP_successfully.yml +60 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Blacklists/_add_token_to_blacklist/should_add_a_token_to_the_blacklist.yml +56 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Blacklists/_blacklisted_tokens/should_get_the_added_token_from_the_blacklist.yml +59 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_at_least_1_result.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_the_first_page_of_one_result.yml +66 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_the_test_client_grant.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_delete_client_grant/should_delete_the_test_client_grant.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_patch_client_grant/should_update_the_test_client_grant.yml +64 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/create_test_client.yml +118 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/create_test_client_grant.yml +64 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/delete_test_client.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/delete_test_client_grant.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/_filters/should_exclude_and_include_fields_properly.yml +91 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/_filters/should_include_the_specified_fields.yml +63 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/should_get_the_test_client.yml +92 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_exclude_fields_not_specified.yml +60 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_exclude_the_specified_fields.yml +132 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_include_the_specified_fields.yml +63 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_paginate_results.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/should_get_at_least_one_client.yml +132 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_delete_client/should_delete_the_test_client_without_an_error.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_patch_client/should_update_the_client_with_the_correct_attributes.yml +94 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/create_test_client.yml +118 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/_filters/should_exclude_the_fields_indicated.yml +63 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/_filters/should_include_the_fields_indicated.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/should_find_the_correct_connection.yml +63 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_include_previously-created_connection_when_filtered.yml +59 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_should_exclude_the_fields_indicated_from_filtered_results.yml +59 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_should_include_the_fields_indicated_from_filtered_results.yml +59 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/should_include_the_previously_created_connection.yml +59 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/should_not_be_empty.yml +59 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_delete_connection/should_delete_the_connection.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_delete_connection_user/should_delete_the_user_created.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_update_connection/should_update_the_connection.yml +66 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/create_test_connection.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/create_test_user.yml +68 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_delete_device_credential/should_delete_the_test_credential_without_an_error.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_device_credentials/_filter_by_type/should_exclude_the_test_credential.yml +59 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_device_credentials/should_have_at_least_1_entry.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_device_credentials/should_include_the_test_credential.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/create_test_credential.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/create_test_user.yml +68 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/delete_test_credential.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/delete_test_user.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_configure_provider/should_configure_a_new_email_provider.yml +63 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_delete_provider/should_delete_the_existing_email_provider_without_an_error.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_delete_provider/should_throw_an_error_trying_to_get_the_email_provider.yml +51 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/_filters/should_get_the_existing_email_provider_with_specific_fields.yml +60 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/_filters/should_get_the_existing_email_provider_without_specific_fields.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/should_get_the_existing_email_provider.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_update_provider/should_update_the_existing_email_provider.yml +63 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/delete_existing_provider.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_export_users_and_get_job/should_create_an_export_users_job_successfully.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_export_users_and_get_job/should_get_the_export_users_job.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_import_users_and_get_job/should_create_an_import_users_job_successfully.yml +60 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_import_users_and_get_job/should_get_the_import_users_job.yml +116 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_create_a_new_verification_email_job.yml +119 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_get_the_completed_verification_email.yml +175 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_reject_an_invalid_client_id.yml +109 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/delete_imported_user.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/search_for_connection_id.yml +59 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_log/should_match_the_created_log_entry.yml +265 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_log/should_not_be_empty.yml +265 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_exclude_fields_not_specified.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_exclude_the_specified_fields.yml +75 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_have_one_log_entry.yml +76 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_include_the_specified_fields.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_from/should_take_one_log_entry.yml +258 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/create_test_user.yml +68 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_disabled_rule.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_enabled_rule.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_user.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_delete_resource_server/should_delete_the_test_server_without_an_error.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_patch_resource_server/should_update_the_resource_server_with_the_correct_attributes.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_server/should_get_the_test_server.yml +59 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_get_the_test_server.yml +59 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_return_at_least_1_result.yml +59 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_return_the_first_page_of_one_result.yml +64 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/create_test_server.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/delete_test_server.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_add_role_permissions/should_add_a_Permission_to_the_Role_successfully.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_add_role_users/should_add_a_User_to_the_Role_successfully.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_delete_role/should_delete_the_Role_successfully.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role/should_get_the_Role_successfully.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_permissions/should_get_exactly_1_Permission.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_permissions/should_get_the_added_Permission_from_the_Role_successfully.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_users/should_get_exactly_1_User.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_users/should_get_the_added_User_from_the_Role_successfully.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_roles/should_get_the_Role_successfully.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_remove_role_permissions/should_remove_a_Permission_from_the_Role_successfully.yml +64 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_update_role/should_update_the_Role_successfully.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_api.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_role.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_user.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/delete_test_api.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/delete_test_user.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_delete_rule/should_delete_the_test_disabled_rule_without_an_error.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_delete_rule/should_delete_the_test_enabled_rule_without_an_error.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_exclude_the_fields_not_specified.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_exclude_the_specified_fields.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_include_the_specified_fields.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/should_get_a_specific_rule.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_exclude_fields_not_specified.yml +60 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_include_the_specified_fields.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_at_least_1_disabled_rule.yml +63 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_at_least_1_enabled_rule.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_paginated_results.yml +128 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/should_return_at_least_1_rule.yml +64 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_update_rule/should_update_the_disabled_rule_to_be_enabled.yml +64 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/create_test_disabled_rule.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/create_test_enabled_rule.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Stats/_active_users/should_have_at_least_one_active_user.yml +59 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Stats/_daily_stats/should_have_at_least_one_stats_entry_for_the_timeframe.yml +63 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings/should_get_the_tenant_settings.yml +95 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings_with_specific_fields/should_exclude_a_field_not_requested.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings_with_specific_fields/should_include_the_field_requested.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_update_tenant_settings/should_revert_the_tenant_name.yml +96 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_update_tenant_settings/should_update_the_tenant_settings_with_a_new_tenant_name.yml +96 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/_post_email_verification/should_create_an_email_verification_ticket.yml +63 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/_post_password_change/should_create_a_password_change_ticket.yml +63 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/create_test_user.yml +68 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/delete_test_user.yml +54 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_add_user_permissions/should_add_a_Permissions_for_a_User_successfully.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_add_user_roles/should_add_a_Role_to_a_User_successfully.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user/should_delete_the_User_successfully.yml +60 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user/should_delete_the_secondary_User_successfully.yml +60 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user_provider/should_attempt_to_delete_the_MFA_provider_for_the_User.yml +60 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_enrollments/should_get_Enrollments_for_a_User_successfully.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_permissions/should_get_exactly_1_Permission_for_a_User_successfully.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_permissions/should_get_the_correct_Permission_for_a_User_successfully.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_roles/should_get_Roles_for_a_User_successfully.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_invalidate_browsers/should_invalidate_MFA_browsers_for_the_User_successfully.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_link_user_account/should_link_two_Users_successfully.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_patch_user/should_patch_the_User_successfully.yml +68 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_remove_user_permissions/should_remove_a_Permission_from_a_User_successfully.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_remove_user_roles/should_remove_a_Role_from_a_User_successfully.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_unlink_user_account/should_unlink_two_Users_successfully.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_exclude_fields_not_indicated.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_exclude_the_fields_indicated.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_include_the_fields_indicated.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/should_retrieve_the_created_user.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user_logs/should_get_Logs_for_a_User_successfully.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/is_expected_to_find_a_user_with_a_v2_search_engine_query.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/is_expected_to_find_a_user_with_a_v3_search_engine_query.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_exclude_the_indicated_fields_when_paginated.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_include_the_indicated_fields_when_paginated.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_not_include_other_fields_when_paginated.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_return_the_correct_number_of_results_when_paginated.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/should_have_at_least_one_user.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_secondary_test_user.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_api.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_role.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_user.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/delete_test_api.yml +60 -0
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/delete_test_role.yml +60 -0
- data/spec/integration/lib/auth0/api/api_authentication_spec.rb +96 -54
- data/spec/integration/lib/auth0/api/v2/api_anomaly_spec.rb +17 -0
- data/spec/integration/lib/auth0/api/v2/api_blacklist_spec.rb +18 -5
- data/spec/integration/lib/auth0/api/v2/api_client_grants_spec.rb +46 -33
- data/spec/integration/lib/auth0/api/v2/api_clients_spec.rb +115 -61
- data/spec/integration/lib/auth0/api/v2/api_connections_spec.rb +117 -103
- data/spec/integration/lib/auth0/api/v2/api_device_credentials_spec.rb +101 -58
- data/spec/integration/lib/auth0/api/v2/api_email_spec.rb +72 -77
- data/spec/integration/lib/auth0/api/v2/api_jobs_spec.rb +113 -60
- data/spec/integration/lib/auth0/api/v2/api_logs_spec.rb +46 -38
- data/spec/integration/lib/auth0/api/v2/api_resource_servers_spec.rb +110 -40
- data/spec/integration/lib/auth0/api/v2/api_roles_spec.rb +145 -0
- data/spec/integration/lib/auth0/api/v2/api_rules_spec.rb +119 -62
- data/spec/integration/lib/auth0/api/v2/api_stats_spec.rb +11 -14
- data/spec/integration/lib/auth0/api/v2/api_tenants_spec.rb +40 -34
- data/spec/integration/lib/auth0/api/v2/api_tickets_spec.rb +42 -28
- data/spec/integration/lib/auth0/api/v2/api_user_blocks_spec.rb +1 -1
- data/spec/integration/lib/auth0/api/v2/api_users_spec.rb +252 -120
- data/spec/integration/lib/auth0/auth0_client_spec.rb +32 -26
- data/spec/lib/auth0/api/v2/anomaly_spec.rb +26 -0
- data/spec/lib/auth0/api/v2/branding_spec.rb +70 -0
- data/spec/lib/auth0/api/v2/client_grants_spec.rb +34 -2
- data/spec/lib/auth0/api/v2/clients_spec.rb +50 -5
- data/spec/lib/auth0/api/v2/connections_spec.rb +49 -1
- data/spec/lib/auth0/api/v2/guardian_spec.rb +154 -0
- data/spec/lib/auth0/api/v2/jobs_spec.rb +109 -6
- data/spec/lib/auth0/api/v2/log_streams_spec.rb +84 -0
- data/spec/lib/auth0/api/v2/organizations_spec.rb +593 -0
- data/spec/lib/auth0/api/v2/prompts_spec.rb +88 -0
- data/spec/lib/auth0/api/v2/resource_servers_spec.rb +23 -0
- data/spec/lib/auth0/api/v2/roles_spec.rb +362 -0
- data/spec/lib/auth0/api/v2/rules_spec.rb +23 -1
- data/spec/lib/auth0/api/v2/tickets_spec.rb +95 -5
- data/spec/lib/auth0/api/v2/users_spec.rb +465 -61
- data/spec/lib/auth0/client_spec.rb +196 -18
- data/spec/lib/auth0/mixins/httpproxy_spec.rb +83 -4
- data/spec/lib/auth0/mixins/initializer_spec.rb +1 -0
- data/spec/lib/auth0/mixins/validation_spec.rb +498 -0
- data/spec/spec_helper.rb +54 -11
- data/spec/support/credentials.rb +6 -18
- data/spec/support/dummy_class.rb +7 -3
- data/spec/support/dummy_class_for_proxy.rb +1 -0
- data/spec/support/stub_response.rb +1 -1
- metadata +497 -53
- data/.travis.yml +0 -18
- data/build_travis.sh +0 -7
- data/deploy_documentation.sh +0 -29
- data/doc_config/templates/default/fulldoc/html/css/full_list.css +0 -79
- data/doc_config/templates/default/fulldoc/html/css/style.css +0 -546
- data/doc_config/templates/default/layout/html/breadcrumb.erb +0 -11
- data/doc_config/templates/default/layout/html/footer.erb +0 -115
- data/doc_config/templates/default/layout/html/headers.erb +0 -17
- data/doc_config/templates/default/layout/html/layout.erb +0 -27
- data/lib/auth0/api/v1/clients.rb +0 -48
- data/lib/auth0/api/v1/connections.rb +0 -53
- data/lib/auth0/api/v1/logs.rb +0 -34
- data/lib/auth0/api/v1/rules.rb +0 -45
- data/lib/auth0/api/v1/users.rb +0 -164
- data/lib/auth0/api/v1.rb +0 -19
- data/spec/lib/auth0/api/authentication_endpoints_spec.rb +0 -348
- data/spec/spec_helper_full.rb +0 -45
- data/spec/spec_helper_unit.rb +0 -3
@@ -7,9 +7,15 @@ describe Auth0::Api::V2::Users do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
context '.users' do
|
10
|
-
it
|
11
|
-
|
12
|
-
|
10
|
+
it 'is expected to respond to a users method' do
|
11
|
+
expect(@instance).to respond_to(:users)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'is expected to respond to a get_users method' do
|
15
|
+
expect(@instance).to respond_to(:get_users)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'is expected to get /api/v2/users' do
|
13
19
|
expect(@instance).to receive(:get).with(
|
14
20
|
'/api/v2/users',
|
15
21
|
per_page: nil,
|
@@ -19,132 +25,237 @@ describe Auth0::Api::V2::Users do
|
|
19
25
|
connection: nil,
|
20
26
|
fields: nil,
|
21
27
|
include_fields: nil,
|
22
|
-
q: nil
|
28
|
+
q: nil,
|
29
|
+
search_engine: nil
|
23
30
|
)
|
24
31
|
expect { @instance.users }.not_to raise_error
|
25
32
|
end
|
33
|
+
|
34
|
+
it 'is expected to get /api/v2/users with custom parameters' do
|
35
|
+
expect(@instance).to receive(:get).with(
|
36
|
+
'/api/v2/users',
|
37
|
+
per_page: 10,
|
38
|
+
page: 1,
|
39
|
+
include_totals: true,
|
40
|
+
sort: nil,
|
41
|
+
connection: 'auth0',
|
42
|
+
fields: 'name,email',
|
43
|
+
include_fields: nil,
|
44
|
+
q: nil,
|
45
|
+
search_engine: 'v3'
|
46
|
+
)
|
47
|
+
expect do
|
48
|
+
@instance.users(
|
49
|
+
search_engine: 'v3',
|
50
|
+
per_page: 10,
|
51
|
+
page: 1,
|
52
|
+
include_totals: true,
|
53
|
+
connection: 'auth0',
|
54
|
+
fields: 'name,email'
|
55
|
+
)
|
56
|
+
end.not_to raise_error
|
57
|
+
end
|
26
58
|
end
|
27
59
|
|
28
60
|
context '.user' do
|
29
|
-
it
|
61
|
+
it 'is expected to respond to a user method' do
|
62
|
+
expect(@instance).to respond_to(:user)
|
63
|
+
end
|
64
|
+
|
30
65
|
it 'is expected to call get request to /api/v2/users/USER_ID' do
|
31
|
-
expect(@instance).to receive(:get).with(
|
66
|
+
expect(@instance).to receive(:get).with(
|
67
|
+
'/api/v2/users/USER_ID',
|
68
|
+
fields: nil,
|
69
|
+
include_fields: true
|
70
|
+
)
|
32
71
|
expect { @instance.user('USER_ID') }.not_to raise_error
|
33
72
|
end
|
34
|
-
|
73
|
+
|
74
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
75
|
+
expect { @instance.user(nil) }.to raise_exception(Auth0::MissingUserId)
|
76
|
+
end
|
35
77
|
end
|
36
78
|
|
37
79
|
context '.create_user' do
|
38
|
-
it
|
39
|
-
|
80
|
+
it 'is expected to respond to a create_user method' do
|
81
|
+
expect(@instance).to respond_to(:create_user)
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'is expected to post to /api/v2/users' do
|
40
85
|
expect(@instance).to receive(:post).with(
|
41
86
|
'/api/v2/users',
|
42
87
|
email: 'test@test.com',
|
43
88
|
password: 'password',
|
44
|
-
connection: 'conn',
|
45
|
-
name: 'name'
|
46
|
-
)
|
47
|
-
@instance.create_user(
|
48
|
-
'name',
|
49
|
-
email: 'test@test.com',
|
50
|
-
password: 'password',
|
51
89
|
connection: 'conn'
|
52
90
|
)
|
91
|
+
expect do
|
92
|
+
@instance.create_user(
|
93
|
+
'conn',
|
94
|
+
email: 'test@test.com',
|
95
|
+
password: 'password'
|
96
|
+
)
|
97
|
+
end.not_to raise_error
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'is expected to raise error if connection is not specified' do
|
101
|
+
expect(@instance).not_to receive(:delete)
|
102
|
+
expect {
|
103
|
+
@instance.create_user(
|
104
|
+
email: 'test@test.com',
|
105
|
+
password: 'password'
|
106
|
+
)
|
107
|
+
}.to raise_exception(
|
108
|
+
Auth0::MissingParameter
|
109
|
+
)
|
53
110
|
end
|
54
111
|
end
|
55
112
|
|
56
113
|
context '.delete_users' do
|
57
|
-
it
|
114
|
+
it 'is expected to respond to a delete_users method' do
|
115
|
+
expect(@instance).to respond_to :delete_users
|
116
|
+
end
|
117
|
+
|
58
118
|
it 'is expected to call delete to /api/v2/users' do
|
59
119
|
expect(@instance).to receive(:delete).with('/api/v2/users')
|
60
|
-
@instance.delete_users
|
120
|
+
expect { @instance.delete_users }.not_to raise_error
|
61
121
|
end
|
62
122
|
end
|
63
123
|
|
64
124
|
context '.delete_user' do
|
65
|
-
it
|
66
|
-
|
67
|
-
|
68
|
-
|
125
|
+
it 'is expected to respond to a delete_user method' do
|
126
|
+
expect(@instance).to respond_to(:delete_user)
|
127
|
+
end
|
128
|
+
|
129
|
+
it 'is expected to delete /api/v2/users/USER_ID' do
|
130
|
+
expect(@instance).to receive(:delete).with('/api/v2/users/USER_ID')
|
131
|
+
@instance.delete_user('USER_ID')
|
69
132
|
end
|
70
133
|
|
71
|
-
it 'is expected not to
|
134
|
+
it 'is expected not to delete /api/v2/users if user_id is blank' do
|
72
135
|
expect(@instance).not_to receive(:delete)
|
73
|
-
expect { @instance.delete_user(
|
136
|
+
expect { @instance.delete_user(nil) }.to raise_exception(
|
74
137
|
Auth0::MissingUserId
|
75
138
|
)
|
76
139
|
end
|
77
140
|
end
|
78
141
|
|
79
142
|
context '.delete_user_provider' do
|
80
|
-
it
|
81
|
-
|
82
|
-
|
83
|
-
|
143
|
+
it 'is expected to respond to a delete_user_provider method' do
|
144
|
+
expect(@instance).to respond_to(:delete_user_provider)
|
145
|
+
end
|
146
|
+
|
147
|
+
it 'is expected to delete /api/v2/users/userId/multifactor/provider' do
|
148
|
+
expect(@instance).to receive(:delete).with('/api/v2/users/USER_ID/multifactor/PROVIDER_NAME')
|
149
|
+
@instance.delete_user_provider('USER_ID', 'PROVIDER_NAME')
|
150
|
+
end
|
151
|
+
|
152
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
153
|
+
expect { @instance.delete_user_provider(nil, 'PROVIDER_NAME') }.to raise_exception(Auth0::MissingUserId)
|
154
|
+
end
|
155
|
+
|
156
|
+
it 'is expected to raise an exception when the provider name is empty' do
|
157
|
+
expect { @instance.delete_user_provider('USER_ID', nil) }.to raise_error 'Must supply a valid provider name'
|
84
158
|
end
|
85
159
|
end
|
86
160
|
|
87
161
|
context '.patch_user' do
|
88
|
-
it
|
89
|
-
|
162
|
+
it 'is expected to respond to a patch_user method' do
|
163
|
+
expect(@instance).to respond_to(:patch_user)
|
164
|
+
end
|
165
|
+
|
166
|
+
it 'is expected to respond to a update_user method' do
|
167
|
+
expect(@instance).to respond_to(:update_user)
|
168
|
+
end
|
169
|
+
|
170
|
+
it 'is expected to patch /api/v2/users/USER_ID' do
|
90
171
|
expect(@instance).to receive(:patch).with(
|
91
|
-
'/api/v2/users/
|
172
|
+
'/api/v2/users/USER_ID',
|
92
173
|
email: 'test@test.com',
|
93
174
|
password: 'password',
|
94
175
|
connection: 'conn',
|
95
176
|
name: 'name'
|
96
177
|
)
|
97
178
|
@instance.patch_user(
|
98
|
-
'
|
179
|
+
'USER_ID',
|
99
180
|
email: 'test@test.com',
|
100
181
|
password: 'password',
|
101
182
|
connection: 'conn',
|
102
183
|
name: 'name'
|
103
184
|
)
|
104
185
|
end
|
105
|
-
|
106
|
-
it
|
186
|
+
|
187
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
188
|
+
expect { @instance.patch_user(nil, 'BODY') }.to raise_exception(Auth0::MissingUserId)
|
189
|
+
end
|
190
|
+
|
191
|
+
it 'is expected to raise an error when the body is empty' do
|
192
|
+
expect { @instance.patch_user('USER_ID', nil) }.to raise_error 'Must supply a valid body'
|
193
|
+
end
|
107
194
|
end
|
108
195
|
|
109
196
|
context '.link_user_account' do
|
110
|
-
it
|
111
|
-
|
112
|
-
|
113
|
-
|
197
|
+
it 'is expected to respond to a link_user_account method' do
|
198
|
+
expect(@instance).to respond_to(:link_user_account)
|
199
|
+
end
|
200
|
+
|
201
|
+
it 'is expected to post to /api/v2/users/UserId/identities' do
|
202
|
+
expect(@instance).to receive(:post).with('/api/v2/users/USER_ID/identities', body: 'json body')
|
203
|
+
@instance.link_user_account('USER_ID', body: 'json body')
|
114
204
|
end
|
115
|
-
it { expect { @instance.link_user_account('', 'body') }.to raise_error 'Must supply a valid user_id' }
|
116
|
-
it { expect { @instance.link_user_account('UserId', '') }.to raise_error 'Must supply a valid body' }
|
117
|
-
end
|
118
205
|
|
119
|
-
|
120
|
-
|
121
|
-
it 'is expected to call delete to /api/v2/users/UserId/identities' do
|
122
|
-
expect(@instance).to receive(:delete).with('/api/v2/users/UserID/identities/provider_name/Secondary_User_ID')
|
123
|
-
@instance.unlink_users_account('UserID', 'provider_name', 'Secondary_User_ID')
|
206
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
207
|
+
expect { @instance.link_user_account(nil, 'BODY') }.to raise_exception(Auth0::MissingUserId)
|
124
208
|
end
|
125
|
-
|
126
|
-
it
|
127
|
-
|
128
|
-
expect { @instance.unlink_users_account('UID', 'pro', nil) }.to raise_error 'Must supply a valid secondary user_id'
|
209
|
+
|
210
|
+
it 'is expected to raise an error when the body is empty' do
|
211
|
+
expect { @instance.link_user_account('USER_ID', nil) }.to raise_error 'Must supply a valid body'
|
129
212
|
end
|
130
213
|
end
|
131
214
|
|
132
|
-
context '.
|
133
|
-
it
|
134
|
-
|
135
|
-
|
136
|
-
|
215
|
+
context '.unlink_user_account' do
|
216
|
+
it 'is expected to respond to a unlink_user_account method' do
|
217
|
+
expect(@instance).to respond_to(:unlink_user_account)
|
218
|
+
end
|
219
|
+
it 'is expected to respond to a unlink_users_account alias' do
|
220
|
+
expect(@instance).to respond_to(:unlink_users_account)
|
221
|
+
end
|
222
|
+
|
223
|
+
it 'is expected to delete /api/v2/users/UserId/identities' do
|
224
|
+
expect(@instance).to receive(:delete).with('/api/v2/users/USER_ID_1/identities/PROVIDER_NAME/USER_ID_2')
|
225
|
+
@instance.unlink_users_account('USER_ID_1', 'PROVIDER_NAME', 'USER_ID_2')
|
226
|
+
end
|
227
|
+
|
228
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
229
|
+
expect do
|
230
|
+
@instance.unlink_users_account(nil, 'PROVIDER_NAME', 'USER_ID_2')
|
231
|
+
end.to raise_error 'Must supply a valid user_id'
|
232
|
+
end
|
233
|
+
|
234
|
+
it 'is expected to raise an exception when the provider is empty' do
|
235
|
+
expect do
|
236
|
+
@instance.unlink_users_account('USER_ID_1', nil, 'USER_ID_2')
|
237
|
+
end.to raise_error 'Must supply a valid provider'
|
238
|
+
end
|
239
|
+
|
240
|
+
it 'is expected to raise an exception when the secondary user ID is empty' do
|
241
|
+
expect do
|
242
|
+
@instance.unlink_users_account('USER_ID_1', 'PROVIDER_NAME', nil)
|
243
|
+
end.to raise_error 'Must supply a valid secondary user_id'
|
137
244
|
end
|
138
|
-
it { expect { @instance.delete_user_provider(nil, 'test') }.to raise_error 'Must supply a valid user_id' }
|
139
245
|
end
|
140
246
|
|
141
247
|
context '.user_logs' do
|
142
|
-
it
|
143
|
-
|
144
|
-
|
248
|
+
it 'is expected to respond to a user_logs method' do
|
249
|
+
expect(@instance).to respond_to(:user_logs)
|
250
|
+
end
|
251
|
+
|
252
|
+
it 'is expected to respond to a get_user_log_events method' do
|
253
|
+
expect(@instance).to respond_to(:get_user_log_events)
|
254
|
+
end
|
255
|
+
|
256
|
+
it 'is expected to get /api/v2/USER_ID/logs' do
|
145
257
|
expect(@instance).to receive(:get).with(
|
146
258
|
'/api/v2/users/USER_ID/logs',
|
147
|
-
user_id: 'USER_ID',
|
148
259
|
per_page: nil,
|
149
260
|
page: nil,
|
150
261
|
include_totals: nil,
|
@@ -152,16 +263,309 @@ describe Auth0::Api::V2::Users do
|
|
152
263
|
)
|
153
264
|
expect { @instance.user_logs('USER_ID') }.not_to raise_error
|
154
265
|
end
|
155
|
-
|
266
|
+
|
267
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
268
|
+
expect { @instance.user_logs(nil) }.to raise_exception(Auth0::MissingUserId)
|
269
|
+
end
|
270
|
+
|
156
271
|
it 'is expected to raise an error when per_page is higher than 100' do
|
157
272
|
expect { @instance.user_logs('USER_ID', per_page: rand(101..2000)) }.to raise_error(
|
158
273
|
'The total amount of entries per page should be less than 100'
|
159
274
|
)
|
160
275
|
end
|
276
|
+
|
161
277
|
it 'is expected to raise an error when sort does not match pattern' do
|
162
278
|
expect { @instance.user_logs('USER_ID', sort: 'no match') }.to raise_error(
|
163
279
|
'Sort does not match pattern ^(([a-zA-Z0-9_\\.]+))\\:(1|-1)$'
|
164
280
|
)
|
165
281
|
end
|
166
282
|
end
|
283
|
+
|
284
|
+
context '.get_roles' do
|
285
|
+
it 'is expected to respond to a get_roles method' do
|
286
|
+
expect(@instance).to respond_to(:get_user_roles)
|
287
|
+
end
|
288
|
+
|
289
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
290
|
+
expect { @instance.get_user_roles(nil) }.to raise_exception(Auth0::MissingUserId)
|
291
|
+
end
|
292
|
+
|
293
|
+
it 'is expected to get roles with default parameters' do
|
294
|
+
expect(@instance).to receive(:get).with(
|
295
|
+
'/api/v2/users/USER_ID/roles',
|
296
|
+
per_page: nil,
|
297
|
+
page: nil,
|
298
|
+
include_totals: nil
|
299
|
+
)
|
300
|
+
expect { @instance.get_user_roles('USER_ID') }.not_to raise_error
|
301
|
+
end
|
302
|
+
|
303
|
+
it 'is expected to get roles with custom parameters' do
|
304
|
+
expect(@instance).to receive(:get).with(
|
305
|
+
'/api/v2/users/USER_ID/roles',
|
306
|
+
per_page: 20,
|
307
|
+
page: 2,
|
308
|
+
include_totals: true
|
309
|
+
)
|
310
|
+
expect do
|
311
|
+
@instance.get_user_roles('USER_ID', per_page: 20, page: 2, include_totals: true)
|
312
|
+
end.not_to raise_error
|
313
|
+
end
|
314
|
+
end
|
315
|
+
|
316
|
+
context '.remove_user_roles' do
|
317
|
+
it 'is expected to respond to a remove_user_roles method' do
|
318
|
+
expect(@instance).to respond_to(:remove_user_roles)
|
319
|
+
end
|
320
|
+
|
321
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
322
|
+
expect { @instance.remove_user_roles(nil, 'ROLES') }.to raise_exception(Auth0::MissingUserId)
|
323
|
+
end
|
324
|
+
|
325
|
+
it 'is expected to raise an exception when the roles are not an array' do
|
326
|
+
expect { @instance.remove_user_roles('USER_ID', 'ROLES') }.to raise_exception(Auth0::InvalidParameter)
|
327
|
+
end
|
328
|
+
|
329
|
+
it 'is expected to raise an exception when the roles are empty' do
|
330
|
+
expect { @instance.remove_user_roles('USER_ID', []) }.to raise_exception(Auth0::MissingParameter)
|
331
|
+
end
|
332
|
+
|
333
|
+
it 'is expected to raise an exception when the roles are empty' do
|
334
|
+
expect { @instance.remove_user_roles('USER_ID', [1, 2]) }.to raise_exception(Auth0::InvalidParameter)
|
335
|
+
end
|
336
|
+
|
337
|
+
it 'is expected to remove roles' do
|
338
|
+
expect(@instance).to receive(:delete_with_body).with(
|
339
|
+
'/api/v2/users/USER_ID/roles',
|
340
|
+
roles: %w[test-role-01 test-role-02]
|
341
|
+
)
|
342
|
+
expect do
|
343
|
+
@instance.remove_user_roles('USER_ID', %w[test-role-01 test-role-02])
|
344
|
+
end.not_to raise_error
|
345
|
+
end
|
346
|
+
end
|
347
|
+
|
348
|
+
context '.add_roles' do
|
349
|
+
it 'is expected to respond to a add_roles method' do
|
350
|
+
expect(@instance).to respond_to(:add_user_roles)
|
351
|
+
end
|
352
|
+
|
353
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
354
|
+
expect { @instance.add_user_roles(nil, 'ROLES') }.to raise_exception(Auth0::MissingUserId)
|
355
|
+
end
|
356
|
+
|
357
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
358
|
+
expect { @instance.add_user_roles('USER_ID', 'ROLES') }.to raise_exception(Auth0::InvalidParameter)
|
359
|
+
end
|
360
|
+
|
361
|
+
it 'is expected to raise an exception when the roles are empty' do
|
362
|
+
expect { @instance.add_user_roles('USER_ID', [3, 4]) }.to raise_exception(Auth0::InvalidParameter)
|
363
|
+
end
|
364
|
+
|
365
|
+
it 'is expected to add roles' do
|
366
|
+
expect(@instance).to receive(:post).with(
|
367
|
+
'/api/v2/users/USER_ID/roles',
|
368
|
+
roles: %w[test-role-03 test-role-04]
|
369
|
+
)
|
370
|
+
expect do
|
371
|
+
@instance.add_user_roles('USER_ID', %w[test-role-03 test-role-04])
|
372
|
+
end.not_to raise_error
|
373
|
+
end
|
374
|
+
end
|
375
|
+
|
376
|
+
context '.get_enrollments' do
|
377
|
+
it 'is expected to respond to a get_enrollments method' do
|
378
|
+
expect(@instance).to respond_to(:get_enrollments)
|
379
|
+
end
|
380
|
+
|
381
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
382
|
+
expect { @instance.get_enrollments(nil) }.to raise_exception(Auth0::MissingUserId)
|
383
|
+
end
|
384
|
+
|
385
|
+
it 'is expected to get enrollments' do
|
386
|
+
expect(@instance).to receive(:get).with('/api/v2/users/USER_ID/enrollments')
|
387
|
+
expect do
|
388
|
+
@instance.get_enrollments('USER_ID')
|
389
|
+
end.not_to raise_error
|
390
|
+
end
|
391
|
+
end
|
392
|
+
|
393
|
+
context '.get_permissions' do
|
394
|
+
it 'is expected to respond to a get_permissions method' do
|
395
|
+
expect(@instance).to respond_to(:get_user_permissions)
|
396
|
+
end
|
397
|
+
|
398
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
399
|
+
expect { @instance.get_user_permissions(nil) }.to raise_exception(Auth0::MissingUserId)
|
400
|
+
end
|
401
|
+
|
402
|
+
it 'is expected to get permissions' do
|
403
|
+
expect(@instance).to receive(:get).with(
|
404
|
+
'/api/v2/users/USER_ID/permissions',
|
405
|
+
per_page: nil,
|
406
|
+
page: nil,
|
407
|
+
include_totals: nil,
|
408
|
+
)
|
409
|
+
expect do
|
410
|
+
@instance.get_user_permissions('USER_ID')
|
411
|
+
end.not_to raise_error
|
412
|
+
end
|
413
|
+
|
414
|
+
it 'is expected to get permissions with custom parameters' do
|
415
|
+
expect(@instance).to receive(:get).with(
|
416
|
+
'/api/v2/users/USER_ID/permissions',
|
417
|
+
per_page: 10,
|
418
|
+
page: 3,
|
419
|
+
include_totals: true
|
420
|
+
)
|
421
|
+
expect do
|
422
|
+
@instance.get_user_permissions('USER_ID', per_page: 10, page: 3, include_totals: true)
|
423
|
+
end.not_to raise_error
|
424
|
+
end
|
425
|
+
end
|
426
|
+
|
427
|
+
context '.remove_permissions' do
|
428
|
+
it 'is expected to respond to a remove_permissions method' do
|
429
|
+
expect(@instance).to respond_to(:remove_user_permissions)
|
430
|
+
end
|
431
|
+
|
432
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
433
|
+
expect { @instance.remove_user_permissions(nil, 'PERMISSIONS') }.to raise_exception(Auth0::MissingUserId)
|
434
|
+
end
|
435
|
+
|
436
|
+
it 'is expected to raise an exception when the permissions are empty' do
|
437
|
+
expect { @instance.remove_user_permissions('USER_ID', []) }.to raise_exception(Auth0::MissingParameter)
|
438
|
+
end
|
439
|
+
|
440
|
+
it 'is expected to raise an exception when the array does not consist of Permissions' do
|
441
|
+
expect do
|
442
|
+
@instance.remove_user_permissions('USER_ID', %w[permission-01 permission02])
|
443
|
+
end.to raise_exception(Auth0::InvalidParameter)
|
444
|
+
end
|
445
|
+
|
446
|
+
it 'is expected to remove permissions' do
|
447
|
+
expect(@instance).to receive(:delete_with_body).with(
|
448
|
+
'/api/v2/users/USER_ID/permissions',
|
449
|
+
permissions: [
|
450
|
+
{
|
451
|
+
permission_name: 'permission-name-1',
|
452
|
+
resource_server_identifier: 'server-id-1'
|
453
|
+
},
|
454
|
+
{
|
455
|
+
permission_name: 'permission-name-2',
|
456
|
+
resource_server_identifier: 'server-id-2'
|
457
|
+
}
|
458
|
+
]
|
459
|
+
)
|
460
|
+
expect do
|
461
|
+
@instance.remove_user_permissions(
|
462
|
+
'USER_ID',
|
463
|
+
[
|
464
|
+
Auth0::Permission.new('permission-name-1', 'server-id-1'),
|
465
|
+
Auth0::Permission.new('permission-name-2', 'server-id-2')
|
466
|
+
]
|
467
|
+
)
|
468
|
+
end.not_to raise_error
|
469
|
+
end
|
470
|
+
end
|
471
|
+
|
472
|
+
context '.add_permissions' do
|
473
|
+
it 'is expected to respond to a add_permissions method' do
|
474
|
+
expect(@instance).to respond_to(:add_user_permissions)
|
475
|
+
end
|
476
|
+
|
477
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
478
|
+
expect { @instance.add_user_permissions(nil, 'PERMISSIONS') }.to raise_exception(Auth0::MissingUserId)
|
479
|
+
end
|
480
|
+
|
481
|
+
it 'is expected to raise an exception when the permissions are empty' do
|
482
|
+
expect { @instance.add_user_permissions('USER_ID', []) }.to raise_exception(Auth0::MissingParameter)
|
483
|
+
end
|
484
|
+
|
485
|
+
it 'is expected to raise an exception when the permissions are not Permission structs' do
|
486
|
+
expect do
|
487
|
+
@instance.add_user_permissions('USER_ID', %w[permission-01 permission02])
|
488
|
+
end.to raise_exception(Auth0::InvalidParameter)
|
489
|
+
end
|
490
|
+
|
491
|
+
it 'is expected to add permissions' do
|
492
|
+
expect(@instance).to receive(:post).with(
|
493
|
+
'/api/v2/users/USER_ID/permissions',
|
494
|
+
permissions: [
|
495
|
+
{
|
496
|
+
permission_name: 'permission-name-1',
|
497
|
+
resource_server_identifier: 'server-id-1'
|
498
|
+
},
|
499
|
+
{
|
500
|
+
permission_name: 'permission-name-2',
|
501
|
+
resource_server_identifier: 'server-id-2'
|
502
|
+
}
|
503
|
+
]
|
504
|
+
)
|
505
|
+
expect do
|
506
|
+
@instance.add_user_permissions(
|
507
|
+
'USER_ID',
|
508
|
+
[
|
509
|
+
Auth0::Permission.new('permission-name-1', 'server-id-1'),
|
510
|
+
Auth0::Permission.new('permission-name-2', 'server-id-2')
|
511
|
+
]
|
512
|
+
)
|
513
|
+
end.not_to raise_error
|
514
|
+
end
|
515
|
+
end
|
516
|
+
|
517
|
+
context '.generate_recovery_code' do
|
518
|
+
it 'is expected to respond to a generate_recovery_code method' do
|
519
|
+
expect(@instance).to respond_to(:generate_recovery_code)
|
520
|
+
end
|
521
|
+
|
522
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
523
|
+
expect { @instance.generate_recovery_code(nil) }.to raise_exception(Auth0::MissingUserId)
|
524
|
+
end
|
525
|
+
|
526
|
+
it 'is expected to get generate a recovery code' do
|
527
|
+
expect(@instance).to receive(:post).with('/api/v2/users/USER_ID/recovery-code-regeneration')
|
528
|
+
expect do
|
529
|
+
@instance.generate_recovery_code('USER_ID')
|
530
|
+
end.not_to raise_error
|
531
|
+
end
|
532
|
+
end
|
533
|
+
|
534
|
+
context '.invalidate_browsers' do
|
535
|
+
it 'is expected to respond to a invalidate_browsers method' do
|
536
|
+
expect(@instance).to respond_to(:invalidate_browsers)
|
537
|
+
end
|
538
|
+
|
539
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
540
|
+
expect { @instance.invalidate_browsers(nil) }.to raise_exception(Auth0::MissingUserId)
|
541
|
+
end
|
542
|
+
|
543
|
+
it 'is expected to invalidate remembered browsers' do
|
544
|
+
expect(@instance).to receive(:post).with(
|
545
|
+
'/api/v2/users/USER_ID/multifactor/actions/invalidate-remember-browser'
|
546
|
+
)
|
547
|
+
expect do
|
548
|
+
@instance.invalidate_browsers('USER_ID')
|
549
|
+
end.not_to raise_error
|
550
|
+
end
|
551
|
+
end
|
552
|
+
|
553
|
+
context '.get_user_organizations' do
|
554
|
+
it 'is expected to respond to a get_user_organizations method' do
|
555
|
+
expect(@instance).to respond_to(:get_user_organizations)
|
556
|
+
end
|
557
|
+
|
558
|
+
it 'is expected to raise an exception when the user ID is empty' do
|
559
|
+
expect { @instance.get_user_organizations(nil) }.to raise_exception(Auth0::MissingUserId)
|
560
|
+
end
|
561
|
+
|
562
|
+
it 'is expected to get users organizations' do
|
563
|
+
expect(@instance).to receive(:get).with(
|
564
|
+
'/api/v2/users/USER_ID/organizations'
|
565
|
+
)
|
566
|
+
expect do
|
567
|
+
@instance.get_user_organizations('USER_ID')
|
568
|
+
end.not_to raise_error
|
569
|
+
end
|
570
|
+
end
|
167
571
|
end
|