auth0 4.16.0 → 5.1.0

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.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +29 -8
  3. data/.github/CODEOWNERS +1 -1
  4. data/.github/ISSUE_TEMPLATE/config.yml +8 -0
  5. data/.github/ISSUE_TEMPLATE/feature_request.md +39 -0
  6. data/.github/ISSUE_TEMPLATE/report_a_bug.md +55 -0
  7. data/.gitignore +1 -1
  8. data/.yardoc/checksums +22 -0
  9. data/.yardoc/complete +0 -0
  10. data/.yardoc/object_types +0 -0
  11. data/.yardoc/objects/root.dat +0 -0
  12. data/.yardoc/proxy_types +0 -0
  13. data/CHANGELOG.md +84 -0
  14. data/Gemfile +0 -1
  15. data/README.md +81 -8
  16. data/Rakefile +0 -22
  17. data/auth0.gemspec +4 -3
  18. data/examples/ruby-api/.gitignore +0 -6
  19. data/lib/auth0/api/authentication_endpoints.rb +22 -226
  20. data/lib/auth0/api/v2.rb +8 -4
  21. data/lib/auth0/api/v2/branding.rb +66 -0
  22. data/lib/auth0/api/v2/connections.rb +3 -0
  23. data/lib/auth0/api/v2/jobs.rb +3 -1
  24. data/lib/auth0/api/v2/organizations.rb +332 -0
  25. data/lib/auth0/api/v2/tickets.rb +14 -2
  26. data/lib/auth0/api/v2/users.rb +33 -8
  27. data/lib/auth0/exception.rb +4 -7
  28. data/lib/auth0/mixins.rb +0 -1
  29. data/lib/auth0/mixins/access_token_struct.rb +2 -2
  30. data/lib/auth0/mixins/api_token_struct.rb +2 -2
  31. data/lib/auth0/mixins/httpproxy.rb +3 -1
  32. data/lib/auth0/mixins/initializer.rb +4 -8
  33. data/lib/auth0/mixins/permission_struct.rb +2 -2
  34. data/lib/auth0/mixins/validation.rb +15 -1
  35. data/lib/auth0/version.rb +1 -1
  36. data/spec/integration/lib/auth0/api/api_authentication_spec.rb +1 -1
  37. data/spec/integration/lib/auth0/api/v2/api_jobs_spec.rb +1 -1
  38. data/spec/integration/lib/auth0/api/v2/api_roles_spec.rb +1 -1
  39. data/spec/integration/lib/auth0/api/v2/api_user_blocks_spec.rb +1 -1
  40. data/spec/integration/lib/auth0/api/v2/api_users_spec.rb +1 -1
  41. data/spec/lib/auth0/api/v2/branding_spec.rb +70 -0
  42. data/spec/lib/auth0/api/v2/connections_spec.rb +4 -0
  43. data/spec/lib/auth0/api/v2/jobs_spec.rb +11 -0
  44. data/spec/lib/auth0/api/v2/organizations_spec.rb +588 -0
  45. data/spec/lib/auth0/api/v2/roles_spec.rb +4 -4
  46. data/spec/lib/auth0/api/v2/tickets_spec.rb +55 -0
  47. data/spec/lib/auth0/api/v2/users_spec.rb +57 -11
  48. data/spec/lib/auth0/client_spec.rb +79 -9
  49. data/spec/lib/auth0/mixins/httpproxy_spec.rb +2 -2
  50. data/spec/lib/auth0/mixins/validation_spec.rb +32 -0
  51. data/spec/spec_helper.rb +6 -1
  52. data/spec/support/credentials.rb +0 -19
  53. metadata +49 -44
  54. data/.github/ISSUE_TEMPLATE.md +0 -39
  55. data/Gemfile.lock +0 -227
  56. data/deploy_documentation.sh +0 -29
  57. data/doc_config/templates/default/fulldoc/html/css/full_list.css +0 -79
  58. data/doc_config/templates/default/fulldoc/html/css/style.css +0 -546
  59. data/doc_config/templates/default/layout/html/breadcrumb.erb +0 -11
  60. data/doc_config/templates/default/layout/html/footer.erb +0 -115
  61. data/doc_config/templates/default/layout/html/headers.erb +0 -17
  62. data/doc_config/templates/default/layout/html/layout.erb +0 -27
  63. data/lib/auth0/api/v1.rb +0 -19
  64. data/lib/auth0/api/v1/clients.rb +0 -58
  65. data/lib/auth0/api/v1/connections.rb +0 -68
  66. data/lib/auth0/api/v1/logs.rb +0 -43
  67. data/lib/auth0/api/v1/rules.rb +0 -57
  68. data/lib/auth0/api/v1/users.rb +0 -227
  69. data/spec/lib/auth0/api/authentication_endpoints_spec.rb +0 -703
@@ -9,6 +9,7 @@ module Auth0
9
9
  # being specified. Accepts a list of fields to include or exclude in the resulting list of connection objects.
10
10
  # @see https://auth0.com/docs/api/management/v2#!/Connections/get_connections
11
11
  # @param strategy [string] Strategy to filter connection results.
12
+ # @param name [string] Name to filter connection results.
12
13
  # @param fields [string] A comma separated list of fields to include or exclude from the result.
13
14
  # @param include_fields [boolean] True if the fields specified are to be included in the result, false otherwise.
14
15
  # @param page [int] Page number to get, 0-based.
@@ -16,6 +17,7 @@ module Auth0
16
17
  # @return [json] Returns the existing connections matching the strategy.
17
18
  def connections(
18
19
  strategy: nil,
20
+ name: nil,
19
21
  fields: nil,
20
22
  include_fields: nil,
21
23
  page: nil,
@@ -24,6 +26,7 @@ module Auth0
24
26
  include_fields = true if !fields.nil? && include_fields.nil?
25
27
  request_params = {
26
28
  strategy: strategy,
29
+ name: name,
27
30
  fields: fields.is_a?(Array) ? fields.join(',') : fields,
28
31
  include_fields: include_fields,
29
32
  page: !page.nil? ? page.to_i : nil,
@@ -81,13 +81,15 @@ module Auth0
81
81
  # @param identity [hash] Used to verify secondary, federated, and passwordless-email identities.
82
82
  # * :user_id [string] user_id of the identity.
83
83
  # * :provider [string] provider of the identity.
84
+ # @param organization_id [string] organization id
84
85
  #
85
86
  # @return [json] Returns the job status and properties.
86
- def send_verification_email(user_id, client_id = nil, identity: nil)
87
+ def send_verification_email(user_id, client_id = nil, identity: nil, organization_id: nil)
87
88
  raise Auth0::InvalidParameter, 'Must specify a user id' if user_id.to_s.empty?
88
89
 
89
90
  request_params = { user_id: user_id }
90
91
  request_params[:client_id] = client_id unless client_id.nil?
92
+ request_params[:organization_id] = organization_id unless organization_id.nil?
91
93
 
92
94
  if identity
93
95
  unless identity.is_a? Hash
@@ -0,0 +1,332 @@
1
+ module Auth0
2
+ module Api
3
+ module V2
4
+ # Methods to use the organizations endpoints
5
+ module Organizations
6
+ include Auth0::Mixins::Validation
7
+
8
+ attr_reader :organizations_path
9
+
10
+ # Get all organizations.
11
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/get_organizations
12
+ # @param options [hash] The Hash options used to define the paging of rersults
13
+ # * :per_page [integer] The amount of entries per page. Default: 50. Max value: 100.
14
+ # * :page [integer] The page number. Zero based.
15
+ # * :include_totals [boolean] True to include query summary in the result, false or nil otherwise.
16
+ # @return [json] All Organizations
17
+ def organizations(options = {})
18
+ request_params = {
19
+ per_page: options.fetch(:per_page, nil),
20
+ page: options.fetch(:page, nil),
21
+ include_totals: options.fetch(:include_totals, nil)
22
+ }
23
+ get(organizations_path, request_params)
24
+ end
25
+ alias get_organizations organizations
26
+
27
+ # Create a new organization.
28
+ # @see ttps://auth0.com/docs/api/management/v2/#!/Organizations/post_organizations
29
+ # @param options [hash] See https://auth0.com/docs/api/management/v2/#!/Organizations/post_organizations for available options
30
+ # @return [json] Returns the created organization.
31
+ def create_organization(options = {})
32
+ post(organizations_path, options)
33
+ end
34
+
35
+ # Get an organization by id. A token with read:organizations scope is required
36
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/get_organizations_by_id
37
+ # @param organization_id [string] The organization_id of the user to retrieve.
38
+ #
39
+ # @return [json] Returns the organization with the given organization_id if it exists.
40
+ def organization(organization_id)
41
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
42
+ path = "#{organizations_path}/#{organization_id}"
43
+ get(path)
44
+ end
45
+
46
+ # Get an organization by name. A token with read:organizations scope is required.
47
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/get_name_by_name
48
+ # @param organization_name [string] The Organization name
49
+ #
50
+ # @return [json] Returns the organization with the given organization_name if it exists.
51
+ def organization_by_name(organization_name)
52
+ raise Auth0::InvalidParameter, 'Must supply a valid organization_name' if organization_name.to_s.empty?
53
+ path = "#{organizations_path}/name/#{organization_name}"
54
+ get(path)
55
+ end
56
+
57
+
58
+ # Deletes a single organization given its id
59
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/delete_organizations_by_id
60
+ # @param organization_id [string] The Organization ID
61
+ def delete_organization(organization_id)
62
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
63
+ path = "#{organizations_path}/#{organization_id}"
64
+ delete(path)
65
+ end
66
+
67
+ # Update an existing organization.
68
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/patch_organizations_by_id
69
+ # @param organization_id [string] The Organization ID
70
+ # @param body [hash] The optional parameters to update.
71
+ #
72
+ # @return [json] Returns the updated user.
73
+ def patch_organization(organization_id, body)
74
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
75
+ raise Auth0::InvalidParameter, 'Must supply a valid body' if body.to_s.empty? || body.empty?
76
+ path = "#{organizations_path}/#{organization_id}"
77
+ patch(path, body)
78
+ end
79
+ alias update_organization patch_organization
80
+
81
+ ### Organization Enabled Connections
82
+
83
+ # Get enabled connections in an Organization
84
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/get_enabled_connections
85
+ # @param organization_id [string] The Organization ID
86
+ #
87
+ # @return [json] Returns the enabled connections for the given organization
88
+ def get_organizations_enabled_connections(organization_id)
89
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
90
+ path = "#{organizations_enabled_connections_path(organization_id)}"
91
+ get(path)
92
+ end
93
+
94
+ # Get enabled connection by id in an Organization
95
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/get_enabled_connections_by_connectionId
96
+ # @param organization_id [string] The Organization ID
97
+ # @param connection_id [string] The Connection id
98
+ #
99
+ # @return [json] Returns the connection for the given organization
100
+ def get_organizations_enabled_connection(organization_id, connection_id)
101
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
102
+ raise Auth0::InvalidParameter, 'Must supply a valid connection id' if connection_id.to_s.empty?
103
+ path = "#{organizations_enabled_connections_path(organization_id)}/#{connection_id}"
104
+ get(path)
105
+ end
106
+
107
+ # Update an eanbled connection in an Organization
108
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/patch_enabled_connections_by_connectionId
109
+ # @param organization_id [string] The Organization ID
110
+ # @param connection_id [string] The Connection id
111
+ # @param assign_membership_on_login [boolean] flag to allow assign membership on login
112
+ #
113
+ # @return [json] Returns the connection for the given organization
114
+ def patch_organizations_enabled_connection(organization_id, connection_id, assign_membership_on_login: nil)
115
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
116
+ raise Auth0::InvalidParameter, 'Must supply a valid connection id' if connection_id.to_s.empty?
117
+ raise Auth0::InvalidParameter, 'Must supply a valid assign_membership_on_login value' if assign_membership_on_login.nil?
118
+ path = "#{organizations_enabled_connections_path(organization_id)}/#{connection_id}"
119
+
120
+ body = {}
121
+ body[:assign_membership_on_login] = assign_membership_on_login
122
+
123
+ patch(path, body)
124
+ end
125
+ alias update_organizations_enabled_connection patch_organizations_enabled_connection
126
+
127
+ # Add an enabled connection for an Organization
128
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/post_enabled_connections
129
+ # @param organization_id [string] The Organization ID
130
+ # @param assign_membership_on_login [boolean] flag to allow assign membership on login
131
+ #
132
+ # @return [json] Returns the connection for the given organization
133
+ def create_organizations_enabled_connection(organization_id, assign_membership_on_login: false)
134
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
135
+ path = "#{organizations_enabled_connections_path(organization_id)}"
136
+
137
+ body = {}
138
+ body[:assign_membership_on_login] = assign_membership_on_login
139
+
140
+ post(path, body)
141
+ end
142
+ alias add_organizations_enabled_connection create_organizations_enabled_connection
143
+
144
+ # Remove an enabled connection from an Organization
145
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/delete_enabled_connections_by_connectionId
146
+ # @param organization_id [string] The Organization ID
147
+ # @param connection_id [string] The Connection id
148
+ def delete_organizations_enabled_connection(organization_id, connection_id)
149
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
150
+ raise Auth0::InvalidParameter, 'Must supply a valid connection id' if connection_id.to_s.empty?
151
+ path = "#{organizations_enabled_connections_path(organization_id)}/#{connection_id}"
152
+ delete(path)
153
+ end
154
+ alias remove_organizations_enabled_connection delete_organizations_enabled_connection
155
+
156
+ ### Organization Invites
157
+
158
+ # Get invites in an Organization
159
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/get_invitations
160
+ # @param organization_id [string] The Organization ID
161
+ #
162
+ # @return [json] Returns the invites for the given organization
163
+ def get_organizations_invites(organization_id)
164
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
165
+ path = "#{organizations_invitations_path(organization_id)}"
166
+ get(path)
167
+ end
168
+
169
+ # Get invite by id in an Organization
170
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/get_invitations_by_invitation_id
171
+ # @param organization_id [string] The Organization ID
172
+ # @param invitation_id [string] The invitation id
173
+ #
174
+ # @return [json] Returns the invitation for the given organization
175
+ def get_organizations_invite(organization_id, invitation_id)
176
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
177
+ raise Auth0::InvalidParameter, 'Must supply a valid invitation id' if invitation_id.to_s.empty?
178
+ path = "#{organizations_invitations_path(organization_id)}/#{invitation_id}"
179
+ get(path)
180
+ end
181
+
182
+ # Create an invitation in an organization
183
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/post_invitations
184
+ # @param organization_id [string] The Organization ID
185
+ # @param options [hash] See https://auth0.com/docs/api/management/v2/#!/Organizations/post_invitations
186
+ # @return [json] Returns the invitation for the given organization
187
+ def create_organizations_invite(organization_id, options = {})
188
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
189
+ path = "#{organizations_invitations_path(organization_id)}"
190
+
191
+ post(path, options)
192
+ end
193
+ alias add_organizations_invite create_organizations_invite
194
+
195
+ # Delete an invitation to organization
196
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/delete_invitations_by_invitation_id
197
+ # @param organization_id [string] The Organization ID
198
+ # @param invitation_id [string] The Invitation id
199
+ def delete_organizations_invite(organization_id, invitation_id)
200
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
201
+ raise Auth0::InvalidParameter, 'Must supply a valid invitation id' if invitation_id.to_s.empty?
202
+ path = "#{organizations_invitations_path(organization_id)}/#{invitation_id}"
203
+ delete(path)
204
+ end
205
+ alias remove_organizations_invite delete_organizations_invite
206
+
207
+ ### Organization Member
208
+
209
+ # Get Members in a Organization
210
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/get_members
211
+ # @param organization_id [string] The Organization ID
212
+ # @param user_id [string] The User ID
213
+ #
214
+ # @return [json] Returns the members for the given organization
215
+ def get_organizations_members(organization_id)
216
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
217
+ path = "#{organizations_members_path(organization_id)}"
218
+ get(path)
219
+ end
220
+
221
+ # Add members in an organization
222
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/post_members
223
+ # @param organization_id [string] The Organization ID
224
+ # @param members [array] Array of user IDs.
225
+ #
226
+ # @return [json] Returns the invitation for the given organization
227
+ def create_organizations_members(organization_id, members = [])
228
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
229
+ raise Auth0::InvalidParameter, 'Must supply an array of member ids' if members.empty?
230
+ path = "#{organizations_members_path(organization_id)}"
231
+
232
+ body = {}
233
+ body[:members] = members
234
+
235
+ post(path, body)
236
+ end
237
+ alias add_organizations_members create_organizations_members
238
+
239
+ # Remove members from an organization
240
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/delete_members
241
+ # @param organization_id [string] The Organization ID
242
+ # @param members [array] Array of user IDs.
243
+ def delete_organizations_members(organization_id, members = [])
244
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
245
+ raise Auth0::InvalidParameter, 'Must supply an array of member ids' if members.empty?
246
+ path = "#{organizations_members_path(organization_id)}"
247
+
248
+ body = {}
249
+ body[:members] = members
250
+
251
+ delete(path, body)
252
+ end
253
+ alias remove_organizations_members delete_organizations_members
254
+
255
+ ### Organization Member Roles
256
+
257
+ # Get Roles assigned to a Member in an Organization
258
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/get_organization_member_roles
259
+ # @param organization_id [string] The Organization ID
260
+ # @param user_id [string] The User ID
261
+ #
262
+ # @return [json] Returns the member_roles for the given organization
263
+ def get_organizations_member_roles(organization_id, user_id)
264
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
265
+ raise Auth0::InvalidParameter, 'Must supply a valid user id' if user_id.to_s.empty?
266
+ path = "#{organizations_member_roles_path(organization_id, user_id)}"
267
+ get(path)
268
+ end
269
+
270
+ # Assign roles to a member in an organization
271
+ # @see https://auth0.com/docs/api/management/v2/#!/Organizations/post_organization_member_roles
272
+ # @param organization_id [string] The Organization ID
273
+ # @param user_id [string] The User ID
274
+ # @param roles [array] Array of role IDs.
275
+ #
276
+ # @return [json] Returns the invitation for the given organization
277
+ def create_organizations_member_roles(organization_id, user_id, roles = [])
278
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
279
+ raise Auth0::InvalidParameter, 'Must supply a valid user id' if user_id.to_s.empty?
280
+ raise Auth0::InvalidParameter, 'Must supply an array of role ids' if roles.empty?
281
+ path = "#{organizations_member_roles_path(organization_id, user_id)}"
282
+
283
+ body = {}
284
+ body[:roles] = roles
285
+
286
+ post(path, body)
287
+ end
288
+ alias add_organizations_member_roles create_organizations_member_roles
289
+
290
+ # Remove roles from a Member of an organization
291
+ # @https://auth0.com/docs/api/management/v2/#!/Organizations/delete_organization_member_roles
292
+ # @param organization_id [string] The Organization ID
293
+ # @param user_id [string] The User ID
294
+ # @param roles [array] Array of role IDs.
295
+ def delete_organizations_member_roles(organization_id, user_id, roles = [])
296
+ raise Auth0::MissingOrganizationId, 'Must supply a valid organization_id' if organization_id.to_s.empty?
297
+ raise Auth0::InvalidParameter, 'Must supply a valid user id' if user_id.to_s.empty?
298
+ raise Auth0::InvalidParameter, 'Must supply an array of role ids' if roles.empty?
299
+ path = "#{organizations_member_roles_path(organization_id, user_id)}"
300
+
301
+ body = {}
302
+ body[:roles] = roles
303
+
304
+ delete(path, body)
305
+ end
306
+ alias remove_organizations_member_roles delete_organizations_member_roles
307
+
308
+ private
309
+ # Organizations API path
310
+ def organizations_path
311
+ @organizations_path ||= '/api/v2/organizations'
312
+ end
313
+
314
+ def organizations_enabled_connections_path(org_id)
315
+ "#{organizations_path}/#{org_id}/enabled_connections"
316
+ end
317
+
318
+ def organizations_members_path(org_id)
319
+ "#{organizations_path}/#{org_id}/members"
320
+ end
321
+
322
+ def organizations_member_roles_path(org_id, user_id)
323
+ "#{organizations_path}/#{org_id}/members/#{user_id}/roles"
324
+ end
325
+
326
+ def organizations_invitations_path(org_id)
327
+ "#{organizations_path}/#{org_id}/invitations"
328
+ end
329
+ end
330
+ end
331
+ end
332
+ end
@@ -15,9 +15,11 @@ module Auth0
15
15
  # @param identity [hash] Used to verify secondary, federated, and passwordless-email identities.
16
16
  # * :user_id [string] user_id of the identity.
17
17
  # * :provider [string] provider of the identity.
18
+ # @param client_id [string] client id
19
+ # @param organization_id [string] organization id
18
20
  #
19
21
  # @return [json] Returns the created ticket url.
20
- def post_email_verification(user_id, result_url: nil, ttl_sec: nil, identity: nil)
22
+ def post_email_verification(user_id, result_url: nil, ttl_sec: nil, identity: nil, client_id: nil, organization_id: nil)
21
23
  if user_id.to_s.empty?
22
24
  raise Auth0::InvalidParameter, 'Must supply a valid user id to post an email verification'
23
25
  end
@@ -27,6 +29,8 @@ module Auth0
27
29
  result_url: result_url,
28
30
  ttl_sec: ttl_sec.is_a?(Integer) ? ttl_sec : nil
29
31
  }
32
+ request_params[:client_id] = client_id unless client_id.nil?
33
+ request_params[:organization_id] = organization_id unless organization_id.nil?
30
34
 
31
35
  if identity
32
36
  unless identity.is_a? Hash
@@ -53,6 +57,8 @@ module Auth0
53
57
  # @param includeEmailInRedirect [boolean] Whether or not we include the email as part of the returnUrl
54
58
  # in the reset_email
55
59
  # @param new_password [string] The password to be set for the user once the ticket is used.
60
+ # @param client_id [string] client id
61
+ # @param organization_id [string] organization id
56
62
  #
57
63
  # @return [json] Returns the created ticket url.
58
64
  def post_password_change(
@@ -63,7 +69,10 @@ module Auth0
63
69
  ttl_sec: nil,
64
70
  mark_email_as_verified: nil,
65
71
  includeEmailInRedirect: nil,
66
- new_password: nil)
72
+ new_password: nil,
73
+ client_id: nil,
74
+ organization_id: nil
75
+ )
67
76
 
68
77
  booleans = [true, false]
69
78
  path = "#{tickets_path}/password-change"
@@ -77,6 +86,9 @@ module Auth0
77
86
  includeEmailInRedirect: booleans.include?(includeEmailInRedirect) ? includeEmailInRedirect : nil,
78
87
  new_password: new_password
79
88
  }
89
+ request_params[:client_id] = client_id unless client_id.nil?
90
+ request_params[:organization_id] = organization_id unless organization_id.nil?
91
+
80
92
  post(path, request_params)
81
93
  end
82
94
 
@@ -43,13 +43,15 @@ module Auth0
43
43
  # The attribute connection is always mandatory but depending on the type of connection you are using there
44
44
  # could be others too. For instance, Auth0 DB Connections require email and password.
45
45
  # @see https://auth0.com/docs/api/v2#!/Users/post_users
46
- # @param name [string] The user name.
47
- # @param options [hash]
48
- # * :connection [string] The connection the user belongs to.
46
+ # @param connection [string] The connection the user belongs to.
47
+ # @param options [hash] See https://auth0.com/docs/api/management/v2#!/Users/post_users for available options
49
48
  # @return [json] Returns the created user.
50
- def create_user(name, options = {})
49
+ def create_user(connection, options = {})
50
+ if !connection.is_a?(String) || connection.empty?
51
+ raise Auth0::MissingParameter, 'Must supply a valid connection'
52
+ end
51
53
  request_params = Hash[options.map { |(k, v)| [k.to_sym, v] }]
52
- request_params[:name] = name
54
+ request_params[:connection] = connection
53
55
  post(users_path, request_params)
54
56
  end
55
57
 
@@ -248,11 +250,22 @@ module Auth0
248
250
  # @see https://auth0.com/docs/api/management/v2#!/Users/get_permissions
249
251
  #
250
252
  # @param user_id [string] The user_id of the permissions to get.
253
+ # @param options [hash] A hash of options for getting permissions
254
+ # * :per_page [integer] The amount of permissions per page. (optional)
255
+ # * :page [integer] The page number. Zero based. (optional)
256
+ # * :include_totals [boolean] True if a query summary must be included in the result. (optional)
251
257
  #
252
258
  # @return [json] Returns permissions for the given user_id.
253
- def get_user_permissions(user_id)
259
+ def get_user_permissions(user_id, options = {})
254
260
  raise Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty?
255
- get "#{users_path}/#{user_id}/permissions"
261
+
262
+ request_params = {
263
+ per_page: options.fetch(:per_page, nil),
264
+ page: options.fetch(:page, nil),
265
+ include_totals: options.fetch(:include_totals, nil)
266
+ }
267
+
268
+ get "#{users_path}/#{user_id}/permissions", request_params
256
269
  end
257
270
 
258
271
  # Remove one or more permissions from a specific user.
@@ -283,7 +296,7 @@ module Auth0
283
296
  # @param user_id [string] The user_id of the recovery codes to regenerate.
284
297
  def generate_recovery_code(user_id)
285
298
  raise Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty?
286
- post "#{users_path}/#{user_id}/recovery-code-generation"
299
+ post "#{users_path}/#{user_id}/recovery-code-regeneration"
287
300
  end
288
301
 
289
302
  # Invalidate all remembered browsers for all authentication factors for a specific user.
@@ -295,6 +308,18 @@ module Auth0
295
308
  post "#{users_path}/#{user_id}/multifactor/actions/invalidate-remember-browser"
296
309
  end
297
310
 
311
+
312
+ # Get a list of organizations for a user.
313
+ #
314
+ # @param user_id [string] The user_id of the permissions to get.
315
+ #
316
+ # @return [json] Returns organizations for the given user_id.
317
+ def get_user_organizations(user_id)
318
+ raise Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty?
319
+
320
+ get "#{users_path}/#{user_id}/organizations"
321
+ end
322
+
298
323
  private
299
324
 
300
325
  # Users API path