auth0 3.6.1 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +4 -0
- data/.rubocop.yml +7 -0
- data/.rubocop_todo.yml +7 -0
- data/.travis.yml +12 -7
- data/CHANGELOG.md +10 -0
- data/Gemfile +4 -2
- data/Guardfile +13 -10
- data/LICENSE +2 -2
- data/README.md +9 -11
- data/Rakefile +33 -7
- data/auth0.gemspec +12 -12
- data/deploy_documentation.sh +29 -0
- data/doc_config/templates/default/fulldoc/html/css/full_list.css +79 -0
- data/doc_config/templates/default/fulldoc/html/css/style.css +546 -0
- data/doc_config/templates/default/layout/html/breadcrumb.erb +11 -0
- data/doc_config/templates/default/layout/html/footer.erb +115 -0
- data/doc_config/templates/default/layout/html/headers.erb +17 -0
- data/doc_config/templates/default/layout/html/layout.erb +27 -0
- data/lib/auth0.rb +5 -5
- data/lib/auth0/api/authentication_endpoints.rb +264 -46
- data/lib/auth0/api/v1.rb +5 -5
- data/lib/auth0/api/v1/clients.rb +7 -7
- data/lib/auth0/api/v1/connections.rb +9 -10
- data/lib/auth0/api/v1/logs.rb +9 -16
- data/lib/auth0/api/v1/rules.rb +5 -5
- data/lib/auth0/api/v1/users.rb +28 -27
- data/lib/auth0/api/v2.rb +17 -9
- data/lib/auth0/api/v2/blacklists.rb +30 -9
- data/lib/auth0/api/v2/clients.rb +60 -19
- data/lib/auth0/api/v2/connections.rb +63 -10
- data/lib/auth0/api/v2/emails.rb +58 -0
- data/lib/auth0/api/v2/jobs.rb +44 -7
- data/lib/auth0/api/v2/rules.rb +104 -0
- data/lib/auth0/api/v2/stats.rb +22 -5
- data/lib/auth0/api/v2/tenants.rb +39 -0
- data/lib/auth0/api/v2/tickets.rb +58 -0
- data/lib/auth0/api/v2/users.rb +128 -39
- data/lib/auth0/client.rb +8 -6
- data/lib/auth0/exception.rb +29 -23
- data/lib/auth0/mixins.rb +12 -10
- data/lib/auth0/mixins/httparty_proxy.rb +13 -10
- data/lib/auth0/mixins/initializer.rb +25 -27
- data/lib/auth0/version.rb +2 -2
- data/spec/integration/lib/auth0/api/v1/api_clients_spec.rb +2 -4
- data/spec/integration/lib/auth0/api/v1/api_users_spec.rb +25 -32
- data/spec/integration/lib/auth0/api/v2/api_blacklist_spec.rb +14 -0
- data/spec/integration/lib/auth0/api/v2/api_clients_spec.rb +61 -6
- data/spec/integration/lib/auth0/api/v2/api_connections_spec.rb +68 -42
- data/spec/integration/lib/auth0/api/v2/api_email_spec.rb +71 -0
- data/spec/integration/lib/auth0/api/v2/api_jobs_spec.rb +69 -0
- data/spec/integration/lib/auth0/api/v2/api_rules_spec.rb +83 -0
- data/spec/integration/lib/auth0/api/v2/api_stats_spec.rb +16 -0
- data/spec/integration/lib/auth0/api/v2/api_tenants_spec.rb +37 -0
- data/spec/integration/lib/auth0/api/v2/api_tickets_spec.rb +33 -0
- data/spec/integration/lib/auth0/api/v2/api_users_spec.rb +88 -36
- data/spec/integration/lib/auth0/auth0_client_spec.rb +43 -35
- data/spec/lib/auth0/api/authentication_endpoints_spec.rb +253 -47
- data/spec/lib/auth0/api/v1/clients_spec.rb +37 -38
- data/spec/lib/auth0/api/v1/connections_spec.rb +44 -38
- data/spec/lib/auth0/api/v1/logs_spec.rb +24 -24
- data/spec/lib/auth0/api/v1/rules_spec.rb +23 -22
- data/spec/lib/auth0/api/v1/users_spec.rb +153 -130
- data/spec/lib/auth0/api/v2/blacklists_spec.rb +12 -11
- data/spec/lib/auth0/api/v2/clients_spec.rb +38 -33
- data/spec/lib/auth0/api/v2/connections_spec.rb +59 -34
- data/spec/lib/auth0/api/v2/emails_spec.rb +47 -0
- data/spec/lib/auth0/api/v2/jobs_spec.rb +24 -10
- data/spec/lib/auth0/api/v2/rules_spec.rb +69 -0
- data/spec/lib/auth0/api/v2/stats_spec.rb +11 -11
- data/spec/lib/auth0/api/v2/tenants_spec.rb +25 -0
- data/spec/lib/auth0/api/v2/tickets_spec.rb +31 -0
- data/spec/lib/auth0/api/v2/users_spec.rb +101 -39
- data/spec/lib/auth0/client_spec.rb +46 -58
- data/spec/lib/auth0/mixins/httparty_proxy_spec.rb +98 -69
- data/spec/lib/auth0/mixins/initializer_spec.rb +2 -2
- data/spec/spec_helper.rb +2 -2
- data/spec/spec_helper_full.rb +16 -15
- data/spec/spec_helper_unit.rb +5 -5
- data/spec/support/credentials.rb +9 -3
- data/spec/support/dummy_class.rb +7 -1
- data/spec/support/dummy_class_for_proxy.rb +2 -2
- data/spec/support/import_users.json +13 -0
- data/spec/support/stub_response.rb +1 -2
- metadata +78 -41
@@ -1,26 +1,49 @@
|
|
1
1
|
module Auth0
|
2
2
|
module Api
|
3
3
|
module V2
|
4
|
+
# Methods to use the connections endpoints
|
4
5
|
module Connections
|
6
|
+
attr_reader :connections_path
|
7
|
+
|
8
|
+
# Retrieves every connection matching the specified strategy. All connections are retrieved if no strategy is
|
9
|
+
# being specified. Accepts a list of fields to include or exclude in the resulting list of connection objects.
|
10
|
+
# @see https://auth0.com/docs/api/v2#!/Connections/get_connections
|
11
|
+
# @param strategy [string] Provide a type of strategy to only retrieve connections with that strategy
|
12
|
+
# @param fields [string] A comma separated list of fields to include or exclude from the result.
|
13
|
+
# @param include_fields [boolean] if the fields specified are to be included in the result, false otherwise.
|
14
|
+
#
|
15
|
+
# @return [json] Returns the existing connections matching the strategy.
|
5
16
|
def connections(strategy: nil, fields: nil, include_fields: true)
|
6
17
|
request_params = {
|
7
18
|
strategy: strategy,
|
8
19
|
fields: fields,
|
9
20
|
include_fields: include_fields
|
10
21
|
}
|
11
|
-
|
12
|
-
get(path, request_params)
|
22
|
+
get(connections_path, request_params)
|
13
23
|
end
|
14
|
-
|
24
|
+
alias_method :get_connections, :connections
|
15
25
|
|
26
|
+
# Creates a new connection according to the JSON object received in body.
|
27
|
+
# @see https://auth0.com/docs/api/v2#!/Connections/post_connections
|
28
|
+
# @param body [hash] The Hash options used to define the conecctions's properties.
|
29
|
+
#
|
30
|
+
# @return [json] Returns the created connection.
|
16
31
|
def create_connection(body)
|
17
|
-
|
32
|
+
fail Auth0::InvalidParameter, 'Must specify a body to create a connection' if body.to_s.empty?
|
18
33
|
request_params = body
|
19
|
-
post(
|
34
|
+
post(connections_path, request_params)
|
20
35
|
end
|
21
36
|
|
37
|
+
# Retrieves a connection by its id.
|
38
|
+
# @see https://auth0.com/docs/api/v2#!/Connections/get_connections_by_id
|
39
|
+
# @param connection_id [string] The id of the connection to retrieve
|
40
|
+
# @param fields [string] A comma separated list of fields to include or exclude from the result.
|
41
|
+
# @param include_fields [boolean] if the fields specified are to be included in the result, false otherwise
|
42
|
+
#
|
43
|
+
# @return [json] Returns the matching connection
|
22
44
|
def connection(connection_id, fields: nil, include_fields: true)
|
23
|
-
|
45
|
+
fail Auth0::InvalidParameter, 'Must supply a valid connection id' if connection_id.to_s.empty?
|
46
|
+
path = "#{connections_path}/#{connection_id}"
|
24
47
|
request_params = {
|
25
48
|
fields: fields,
|
26
49
|
include_fields: include_fields
|
@@ -28,17 +51,47 @@ module Auth0
|
|
28
51
|
get(path, request_params)
|
29
52
|
end
|
30
53
|
|
54
|
+
# Deletes a connection and all its users.
|
55
|
+
# @see https://auth0.com/docs/api/v2#!/Connections/delete_connections_by_id
|
56
|
+
# @param connection_id [string] The id of the connection to delete
|
31
57
|
def delete_connection(connection_id)
|
32
|
-
|
33
|
-
path = "
|
58
|
+
fail Auth0::InvalidParameter, 'Must supply a valid connection id' if connection_id.to_s.empty?
|
59
|
+
path = "#{connections_path}/#{connection_id}"
|
60
|
+
delete(path)
|
61
|
+
end
|
62
|
+
|
63
|
+
# Deletes a specified connection user by its email (currently only database connections are supported and you
|
64
|
+
# cannot delete all users from specific connection).
|
65
|
+
# @see https://auth0.com/docs/api/v2#!/Connections/delete_users
|
66
|
+
# @param connection_id [string] The id of the connection
|
67
|
+
# @param user_email [string] The email of the user to delete
|
68
|
+
#
|
69
|
+
# @return [json] Returns the updated connection.
|
70
|
+
def delete_connection_user(connection_id, user_email)
|
71
|
+
fail Auth0::InvalidParameter, 'Must supply a valid connection id' if connection_id.to_s.empty?
|
72
|
+
fail Auth0::InvalidParameter, 'Must supply a valid user email' if user_email.to_s.empty?
|
73
|
+
path = "#{connections_path}/#{connection_id}/users?email=#{user_email}"
|
34
74
|
delete(path)
|
35
75
|
end
|
36
76
|
|
77
|
+
# Updates a connection. Updates the fields specified in the body parameter.
|
78
|
+
# @see https://auth0.com/docs/api/v2#!/Connections/patch_connections_by_id
|
79
|
+
# @param connection_id [string] The id of the connection to delete
|
80
|
+
# @param body [hash] The Hash options used to update the conecctions's properties.
|
81
|
+
#
|
82
|
+
# @return [json] Returns the updated connection.
|
37
83
|
def update_connection(connection_id, body)
|
38
|
-
|
39
|
-
path = "
|
84
|
+
fail Auth0::InvalidParameter, 'Must supply a valid connection id' if connection_id.to_s.empty?
|
85
|
+
path = "#{connections_path}/#{connection_id}"
|
40
86
|
patch(path, body)
|
41
87
|
end
|
88
|
+
|
89
|
+
private
|
90
|
+
|
91
|
+
# Connections API path
|
92
|
+
def connections_path
|
93
|
+
@connections_path ||= '/api/v2/connections'
|
94
|
+
end
|
42
95
|
end
|
43
96
|
end
|
44
97
|
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Auth0
|
2
|
+
module Api
|
3
|
+
module V2
|
4
|
+
# Methods to use the connections endpoints
|
5
|
+
module Emails
|
6
|
+
attr_reader :email_path
|
7
|
+
|
8
|
+
# Get all the email providers.
|
9
|
+
# @see https://auth0.com/docs/api/v2#!/Emails/get_provider
|
10
|
+
# @param fields [string] A comma separated list of fields to include or exclude from the result.
|
11
|
+
# @param include_fields [boolean] if the fields specified are to be included in the result, false otherwise.
|
12
|
+
#
|
13
|
+
# @return [json] Returns the existing email providers.
|
14
|
+
def get_provider(fields: nil, include_fields: nil)
|
15
|
+
request_params = {
|
16
|
+
fields: fields,
|
17
|
+
include_fields: include_fields
|
18
|
+
}
|
19
|
+
get(email_path, request_params)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Configure a new email provider.
|
23
|
+
# @see https://auth0.com/docs/api/v2#!/Emails/post_provider
|
24
|
+
# @param body [hash] The Hash options used to spcify the email provider's properties.
|
25
|
+
#
|
26
|
+
# @return [json] Returns the created email provider.
|
27
|
+
def configure_provider(body)
|
28
|
+
fail Auth0::InvalidParameter, 'Must supply a valid body to create an email provider' if body.to_s.empty?
|
29
|
+
post(email_path, body)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Deletes the configured email provider.
|
33
|
+
# @see https://auth0.com/docs/api/v2#!/Emails/delete_provider
|
34
|
+
#
|
35
|
+
# @return [json] Returns the created email provider.
|
36
|
+
def delete_provider
|
37
|
+
delete(email_path)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Updates the configured email provider.
|
41
|
+
# @see https://auth0.com/docs/api/v2#!/Emails/patch_provider
|
42
|
+
# @param body [hash] The Hash options used to spcify the email provider's properties.
|
43
|
+
#
|
44
|
+
# @return [json] Returns the updated email provider.
|
45
|
+
def update_provider(body)
|
46
|
+
fail Auth0::InvalidParameter, 'Must supply a valid body to update an email provider' if body.to_s.empty?
|
47
|
+
patch(email_path, body)
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def email_path
|
53
|
+
@email_path ||= '/api/v2/emails/provider'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/lib/auth0/api/v2/jobs.rb
CHANGED
@@ -1,18 +1,55 @@
|
|
1
1
|
module Auth0
|
2
2
|
module Api
|
3
3
|
module V2
|
4
|
-
#
|
4
|
+
# Methods to use the jobs endpoints
|
5
5
|
module Jobs
|
6
|
-
|
6
|
+
attr_reader :jobs_path
|
7
|
+
|
8
|
+
# Retrieves a job. Useful to check its status.
|
9
|
+
# @see https://auth0.com/docs/api/v2#!/Jobs/get_jobs_by_job_id
|
10
|
+
# @param job_id [string] The id of the job
|
11
|
+
#
|
12
|
+
# @return [json] the job status and properties
|
7
13
|
def get_job(job_id)
|
8
|
-
|
14
|
+
fail Auth0::InvalidParameter, 'Must specify a job id' if job_id.to_s.empty?
|
15
|
+
path = "#{jobs_path}/#{job_id}"
|
9
16
|
get(path)
|
10
17
|
end
|
11
18
|
|
12
|
-
#
|
13
|
-
# https://auth0.com/
|
14
|
-
|
15
|
-
|
19
|
+
# Imports users to a connection from a file using a long running job.
|
20
|
+
# Important: The documentation for the file format is at https://docs.auth0.com/bulk-import.
|
21
|
+
# @see https://auth0.com/docs/api/v2#!/Jobs/post_users_imports
|
22
|
+
# @param users_file [file] A file containing the users to import
|
23
|
+
# @param connection_id [string] The connection id of the connection to which users will be inserted
|
24
|
+
#
|
25
|
+
# @return [json] the job status and properties
|
26
|
+
def import_users(users_file, connection_id)
|
27
|
+
fail Auth0::InvalidParameter, 'Must specify a valid file' if users_file.to_s.empty?
|
28
|
+
fail Auth0::InvalidParameter, 'Must specify a connection_id' if connection_id.to_s.empty?
|
29
|
+
request_params = {
|
30
|
+
users: users_file,
|
31
|
+
connection_id: connection_id
|
32
|
+
}
|
33
|
+
path = "#{jobs_path}/users-imports"
|
34
|
+
post_file(path, request_params)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Send an email to the specified user that asks them to click a link to verify their email address.
|
38
|
+
# @see https://auth0.com/docs/api/v2#!/Jobs/post_verification_email
|
39
|
+
# @param user_id [string] The user_id of the user to whom the email will be sent
|
40
|
+
#
|
41
|
+
# @return [json] the job status and properties
|
42
|
+
def send_verification_email(user_id)
|
43
|
+
fail Auth0::InvalidParameter, 'Must specify a user id' if user_id.to_s.empty?
|
44
|
+
path = "#{jobs_path}/verification-email"
|
45
|
+
post(path, user_id)
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
# Jobs API path
|
51
|
+
def jobs_path
|
52
|
+
@jobs_path ||= '/api/v2/jobs'
|
16
53
|
end
|
17
54
|
end
|
18
55
|
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
module Auth0
|
2
|
+
module Api
|
3
|
+
module V2
|
4
|
+
# Methods to use the rules endpoints
|
5
|
+
module Rules
|
6
|
+
attr_reader :rules_path
|
7
|
+
|
8
|
+
# Retrieves a list of all rules. Accepts a list of fields to include or exclude.
|
9
|
+
# The enabled parameter can be specified to get enabled or disabled rules.
|
10
|
+
# The rule's stage of executing could be set to the following values login_success,
|
11
|
+
# login_failure or pre_authorize
|
12
|
+
# @see https://auth0.com/docs/api/v2#!/Rules/get_rules
|
13
|
+
# @param enabled [boolean] If provided retrieves rules that match the value, otherwise all rules are retrieved
|
14
|
+
# @param fields [string] A comma separated list of fields to include or exclude from the result.
|
15
|
+
# @param include_fields [boolean] If the fields specified are to be included in the result, false otherwise
|
16
|
+
# @param stage [string] Retrieves rules that match the execution stage (defaults to login_success)
|
17
|
+
#
|
18
|
+
# @return [json] Returns the existing rules.
|
19
|
+
def rules(enabled: nil, fields: nil, include_fields: nil, stage: nil)
|
20
|
+
request_params = {
|
21
|
+
enabled: enabled,
|
22
|
+
fields: fields,
|
23
|
+
include_fields: include_fields,
|
24
|
+
stage: stage
|
25
|
+
}
|
26
|
+
get(rules_path, request_params)
|
27
|
+
end
|
28
|
+
|
29
|
+
alias_method :get_rules, :rules
|
30
|
+
|
31
|
+
# Retrieves a rule by its ID. Accepts a list of fields to include or exclude in the result.
|
32
|
+
# @see https://auth0.com/docs/api/v2#!/Rules/get_rules_by_id
|
33
|
+
# @param rule_id [string] The id of the rule to retrieve
|
34
|
+
# @param fields [string] A comma separated list of fields to include or exclude from the result.
|
35
|
+
# @param include_fields [boolean] If the fields specified are to be included in the result, false otherwise
|
36
|
+
#
|
37
|
+
# @return [json] Returns the rule.
|
38
|
+
def rule(rule_id, fields: nil, include_fields: nil)
|
39
|
+
fail Auth0::InvalidParameter, 'Must supply a valid rule id' if rule_id.to_s.empty?
|
40
|
+
path = "#{rules_path}/#{rule_id}"
|
41
|
+
request_params = {
|
42
|
+
fields: fields,
|
43
|
+
include_fields: include_fields
|
44
|
+
}
|
45
|
+
get(path, request_params)
|
46
|
+
end
|
47
|
+
|
48
|
+
alias_method :get_rule, :rule
|
49
|
+
|
50
|
+
# Creates a new rule according to the JSON object received in body.
|
51
|
+
# @see https://auth0.com/docs/api/v2#!/Rules/post_rules
|
52
|
+
# @param name [string] The name of the rule. Can only contain alphanumeric characters, spaces and '-'.
|
53
|
+
# @param script [string] A script that contains the rule's code
|
54
|
+
# @param order [integer] The rule's order in relation to other rules. A rule with a lower order than another rule
|
55
|
+
# executes first. If no order is provided it will automatically be one greater than the current maximum
|
56
|
+
# @param enabled [string] true if the rule is enabled, false otherwise
|
57
|
+
# @param stage [string] The rule's execution stage 'login_success' or 'login_failure' or 'pre_authorize' or
|
58
|
+
# 'user_registration' or 'user_blocked'
|
59
|
+
#
|
60
|
+
# @return [json] Returns the rule.
|
61
|
+
def create_rule(name, script, order = nil, enabled = true, stage = 'login_success')
|
62
|
+
fail Auth0::InvalidParameter, 'Must supply a valid name' if name.to_s.empty?
|
63
|
+
fail Auth0::InvalidParameter, 'Must supply a valid script' if script.to_s.empty?
|
64
|
+
request_params = {
|
65
|
+
name: name,
|
66
|
+
enabled: enabled,
|
67
|
+
script: script,
|
68
|
+
order: order,
|
69
|
+
stage: stage
|
70
|
+
}
|
71
|
+
post(rules_path, request_params)
|
72
|
+
end
|
73
|
+
|
74
|
+
# Updates a rule.
|
75
|
+
# @see https://auth0.com/docs/api/v2#!/Rules/patch_rules_by_id
|
76
|
+
# @param rule_id [string] The id of the rule to retrieve
|
77
|
+
# @param fields_to_update [hash] The Hash fields_to_update used to define the rule's properties.
|
78
|
+
# @return [json] Returns the updated rule.
|
79
|
+
def update_rule(rule_id, fields_to_update = {})
|
80
|
+
fail Auth0::InvalidParameter, 'Must supply a valid rule id' if rule_id.to_s.empty?
|
81
|
+
|
82
|
+
path = "#{rules_path}/#{rule_id}"
|
83
|
+
patch(path, fields_to_update)
|
84
|
+
end
|
85
|
+
|
86
|
+
# Deletes a rule.
|
87
|
+
# @see https://auth0.com/docs/api/v2#!/Rules/delete_rules_by_id
|
88
|
+
# @param rule_id [string] The id of the rule to retrieve
|
89
|
+
def delete_rule(rule_id)
|
90
|
+
fail Auth0::InvalidParameter, 'Must supply a valid rule id' if rule_id.to_s.empty?
|
91
|
+
path = "#{rules_path}/#{rule_id}"
|
92
|
+
delete(path)
|
93
|
+
end
|
94
|
+
|
95
|
+
private
|
96
|
+
|
97
|
+
# Rules API path
|
98
|
+
def rules_path
|
99
|
+
@rules_path ||= '/api/v2/rules'
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
data/lib/auth0/api/v2/stats.rb
CHANGED
@@ -1,23 +1,40 @@
|
|
1
1
|
module Auth0
|
2
2
|
module Api
|
3
3
|
module V2
|
4
|
-
#
|
4
|
+
# Methods to use the stats endpoints
|
5
5
|
module Stats
|
6
|
-
|
6
|
+
attr_reader :stats_path
|
7
|
+
|
8
|
+
# Gets the active users count (logged in during the last 30 days).
|
9
|
+
# @see https://auth0.com/docs/api/v2#!/Stats/get_active_users
|
10
|
+
#
|
11
|
+
# @return [integer] Returns numbers
|
7
12
|
def active_users
|
8
|
-
path = "/
|
13
|
+
path = "#{stats_path}/active-users"
|
9
14
|
get(path)
|
10
15
|
end
|
11
16
|
|
12
|
-
#
|
17
|
+
# Gets the daily stats for a particular period.
|
18
|
+
# @see https://auth0.com/docs/api/v2#!/Stats/get_daily
|
19
|
+
# @param from [string] The first day of the period (inclusive) in YYYYMMDD format.
|
20
|
+
# @param to [string] The last day of the period (inclusive) in YYYYMMDD format.
|
21
|
+
#
|
22
|
+
# @return [json] Returns the daily stats.
|
13
23
|
def daily_stats(from, to)
|
14
|
-
path = "/
|
24
|
+
path = "#{stats_path}/daily"
|
15
25
|
request_params = {
|
16
26
|
from: from,
|
17
27
|
to: to
|
18
28
|
}
|
19
29
|
get(path, request_params)
|
20
30
|
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
# Stats API path
|
35
|
+
def stats_path
|
36
|
+
@stats_path ||= '/api/v2/stats'
|
37
|
+
end
|
21
38
|
end
|
22
39
|
end
|
23
40
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Auth0
|
2
|
+
module Api
|
3
|
+
module V2
|
4
|
+
# Methods to use the Tenants endpoints
|
5
|
+
module Tenants
|
6
|
+
attr_reader :tenant_path
|
7
|
+
|
8
|
+
# Gets tenants settings.
|
9
|
+
# @see https://auth0.com/docs/api/v2#!/Tenants/get_settings
|
10
|
+
# @param fields [string] A comma separated list of fields to include or exclude from the result.
|
11
|
+
# @param include_fields [boolean] If the fields specified are to be included in the result, false otherwise
|
12
|
+
# @return [json] Returns tenants settings.
|
13
|
+
def get_tenant_settings(fields: nil, include_fields: true)
|
14
|
+
request_params = {
|
15
|
+
fields: fields,
|
16
|
+
include_fields: include_fields
|
17
|
+
}
|
18
|
+
get(tenant_path, request_params)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Updates tenants settings.
|
22
|
+
# @see https://auth0.com/docs/api/v2#!/Tenants/patch_settings
|
23
|
+
# @param body [hash] The Hash body used to define the tenants settings's properties.
|
24
|
+
# @return [json] Returns updated tenants settings.
|
25
|
+
def update_tenant_settings(body)
|
26
|
+
fail Auth0::InvalidParameter, 'Must supply a valid body to update tenant settings' if body.to_s.empty?
|
27
|
+
patch(tenant_path, body)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
# Tenants settings API path
|
33
|
+
def tenant_path
|
34
|
+
@tenant_path ||= '/api/v2/tenants/settings'
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Auth0
|
2
|
+
module Api
|
3
|
+
module V2
|
4
|
+
# Methods to use the tickets endpoints
|
5
|
+
module Tickets
|
6
|
+
attr_reader :tickets_path
|
7
|
+
|
8
|
+
# Create an email verification ticket
|
9
|
+
# @see https://auth0.com/docs/api/v2#!/Tickets/post_email_verification
|
10
|
+
# @param user_id [string] The user_id of for which the ticket is to be created
|
11
|
+
# @param result_url [string] The user will be redirected to this endpoint once the ticket is used
|
12
|
+
# @return [json] Returns ticket url
|
13
|
+
def post_email_verification(user_id, result_url: nil)
|
14
|
+
if user_id.to_s.empty?
|
15
|
+
fail Auth0::InvalidParameter, 'Must supply a valid user id to post an email verification'
|
16
|
+
end
|
17
|
+
path = "#{tickets_path}/email-verification"
|
18
|
+
request_params = {
|
19
|
+
user_id: user_id,
|
20
|
+
result_url: result_url
|
21
|
+
}
|
22
|
+
post(path, request_params)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Create a password change ticket
|
26
|
+
# @see https://auth0.com/docs/api/v2#!/Tickets/post_password_change
|
27
|
+
# @param new_password [string] The password to set for the user once the ticket is used
|
28
|
+
# @param user_id [string] The user_id of for which the ticket is to be created
|
29
|
+
# @param result_url [string] The user will be redirected to this endpoint once the ticket is used
|
30
|
+
# @param connection_id [string] The connection that provides the identity for which the password is to be
|
31
|
+
# changed. If sending this parameter, the email is also required and the user_id is invalid
|
32
|
+
# @param email [string] The user's email
|
33
|
+
# @return [json] Returns ticket url
|
34
|
+
def post_password_change(new_password, user_id: nil, result_url: nil, connection_id: nil, email: nil)
|
35
|
+
if new_password.to_s.empty?
|
36
|
+
fail Auth0::InvalidParameter, 'Must supply a valid new password to post a password-change'
|
37
|
+
end
|
38
|
+
path = "#{tickets_path}/password-change"
|
39
|
+
request_params = {
|
40
|
+
user_id: user_id,
|
41
|
+
result_url: result_url,
|
42
|
+
new_password: new_password,
|
43
|
+
connection_id: connection_id,
|
44
|
+
email: email
|
45
|
+
}
|
46
|
+
post(path, request_params)
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
# Tickets API path
|
52
|
+
def tickets_path
|
53
|
+
@tickets_path ||= '/api/v2/tickets'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|