Module: Auth0::Api::V2::Users

Included in:
Auth0::Api::V2
Defined in:
lib/auth0/api/v2/users.rb

Overview

Methods to use the users endpoints

Instance Method Summary collapse

Instance Method Details

#create_user(name, options = {}) ⇒ json

Creates a new user according to optional parameters received. The attribute connection is always mandatory but depending on the type of connection you are using there could be others too. For instance, Auth0 DB Connections require email and password.

Parameters:

  • name (string)

    the user name

  • connection (string)

    The connection the user belongs to

Returns:

  • (json)

See Also:



45
46
47
48
49
# File 'lib/auth0/api/v2/users.rb', line 45

def create_user(name, options = {})
  request_params = Hash[options.map { |(k, v)| [k.to_sym, v] }]
  request_params[:name] = name
  post(users_path, request_params)
end

#delete_user(user_id) ⇒ Object

Deletes a single user given its id

Parameters:

  • user_id (string)

    The user_id of the user to delete

See Also:



77
78
79
80
81
# File 'lib/auth0/api/v2/users.rb', line 77

def delete_user(user_id)
  fail Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty?
  path = "#{users_path}/#{user_id}"
  delete(path)
end

#delete_user_provider(user_id, provider_name) ⇒ Object

Delete a user’s multifactor provider

Parameters:

  • user_id (string)

    The user_id of the user to delete

  • provider_name (string)

    The multifactor provider. Supported values ‘duo’ or ‘google-authenticator’

See Also:



110
111
112
113
114
115
# File 'lib/auth0/api/v2/users.rb', line 110

def delete_user_provider(user_id, provider_name)
  fail Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty?
  fail Auth0::InvalidParameter, 'Must supply a valid provider name' if provider_name.to_s.empty?
  path = "#{users_path}/#{user_id}/multifactor/#{provider_name}"
  delete(path)
end

#delete_usersObject

Delete all users - USE WITH CAUTION



53
54
55
# File 'lib/auth0/api/v2/users.rb', line 53

def delete_users
  delete(users_path)
end

Links the account specified in the body (secondary account) to the account specified by the id param of the URL (primary account).

  1. With the authenticated primary account’s JWT in the Authorization header, which has the

update:current_user_identities scope. In this case only the link_with param is required in the body, containing the JWT obtained upon the secondary account’s authentication.

  1. With an API V2 generated token with update:users scope. In this case you need to send provider and user_id

in the body. Optionally you can also send the connection_id param which is suitable for identifying a particular database connection for the ‘auth0’ provider.

Parameters:

  • user_id (string)

    The user_id of the primary identity where you are linking the secondary account to.

  • body (string)

    the options to link the account to.

Returns:

  • (json)

    the new array of the primary account identities.

See Also:



130
131
132
133
134
135
# File 'lib/auth0/api/v2/users.rb', line 130

def (user_id, body)
  fail Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty?
  fail Auth0::InvalidParameter, 'Must supply a valid body' if body.to_s.empty?
  path = "#{users_path}/#{user_id}/identities"
  post(path, body)
end

#patch_user(user_id, body) ⇒ json

Updates a user with the object’s properties received in the optional parameters. These are the attributes that can be updated at the root level: blocked, email_verified, email, verify_email, password, phone_number, phone_verified, verify_password, user_metadata, app_metadata, username Some considerations: The properties of the new object will replace the old ones. The metadata fields are an exception to this rule (user_metadata and app_metadata). These properties are merged instead of being replaced but be careful, the merge only occurs on the first level. If you are updating email_verified, phone_verified, username or password you need to specify the connection property too. If your are updating email or phone_number you need to specify the connection and the client_id properties.

Parameters:

  • user_id (string)

    The user_id of the user to update.

  • body (hash)

    The optional parametes to update

Returns:

  • (json)

    the updated user

See Also:



99
100
101
102
103
104
# File 'lib/auth0/api/v2/users.rb', line 99

def patch_user(user_id, body)
  fail Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty?
  fail Auth0::InvalidParameter, 'Must supply a valid body' if body.to_s.empty?
  path = "#{users_path}/#{user_id}"
  patch(path, body)
end

Unlink a user account

Parameters:

  • user_id (string)

    The user_id of the user identity.

  • provider (string)

    The type of identity provider.

  • secondary_user_id (string)

    The unique identifier for the user for the identity.

Returns:

  • (json)

    the array of the unlinked account identities.

See Also:



144
145
146
147
148
149
150
# File 'lib/auth0/api/v2/users.rb', line 144

def (user_id, provider, secondary_user_id)
  fail Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty?
  fail Auth0::MissingUserId, 'Must supply a valid secondary user_id' if secondary_user_id.to_s.empty?
  fail Auth0::InvalidParameter, 'Must supply a valid provider' if provider.to_s.empty?
  path = "#{users_path}/#{user_id}/identities/#{provider}/#{secondary_user_id}"
  delete(path)
end

#user(user_id, fields: nil, include_fields: true) ⇒ json

Retrieves a user given a user_id

Parameters:

  • user_id (string)

    The user_id of the user to retrieve

  • fields (string) (defaults to: nil)

    A comma separated list of fields to include or exclude from the result.

  • include_fields (boolean) (defaults to: true)

    if the fields specified are to be included in the result, false otherwise.

Returns:

  • (json)

    the user with the given user_id if exists

See Also:



64
65
66
67
68
69
70
71
72
# File 'lib/auth0/api/v2/users.rb', line 64

def user(user_id, fields: nil, include_fields: true)
  fail Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty?
  path = "#{users_path}/#{user_id}"
  request_params = {
    fields:         fields,
    include_fields: include_fields
  }
  get(path, request_params)
end

#users(options = {}) ⇒ json Also known as: get_users

Retrieves a list of existing users. normalized user profile are searchable.

Parameters:

  • per_page (integer)

    The amount of entries per page. Default: 50. Max value: 100

  • page (integer)

    The page number. Zero based

  • include_totals (boolean)

    true if a query summary must be included in the result

  • sort (string)

    The field to use for sorting. 1 == ascending and -1 == descending

  • connection (string)

    Connection filter

  • fields (string)

    A comma separated list of fields to include or exclude from the result.

  • include_fields (boolean)

    if the fields specified are to be included in the result, false otherwise.

  • q (string)

    Query in Lucene query string syntax. Only fields in app_metadata, user_metadata or the

Returns:

  • (json)

    The list of existing users.

See Also:



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/auth0/api/v2/users.rb', line 21

def users(options = {})
  request_params = {
    per_page:       options.fetch(:per_page, nil),
    page:           options.fetch(:page, nil),
    include_totals: options.fetch(:include_totals, nil),
    sort:           options.fetch(:sort, nil),
    connection:     options.fetch(:connection, nil),
    fields:         options.fetch(:fields, nil),
    include_fields: options.fetch(:include_fields, nil),
    q:              options.fetch(:q, nil)
  }
  request_params[:search_engine] = :v2 if request_params[:q]
  get(users_path, request_params)
end