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
-
#create_user(name, options = {}) ⇒ json
Creates a new user according to optional parameters received.
-
#delete_user(user_id) ⇒ Object
Deletes a single user given its id.
-
#delete_user_provider(user_id, provider_name) ⇒ Object
Delete a user’s multifactor provider.
-
#delete_users ⇒ Object
Delete all users - USE WITH CAUTION.
-
#link_user_account(user_id, body) ⇒ json
Links the account specified in the body (secondary account) to the account specified by the id param of the URL (primary account).
-
#patch_user(user_id, body) ⇒ json
Updates a user with the object’s properties received in the optional parameters.
-
#unlink_users_account(user_id, provider, secondary_user_id) ⇒ json
Unlink a user account.
-
#user(user_id, fields: nil, include_fields: true) ⇒ json
Retrieves a user given a user_id.
-
#user_logs(user_id, options = {}) ⇒ json
(also: #get_user_log_events)
Retrieve every log event for a specific user id rubocop:disable Metrics/MethodLength, Metrics/AbcSize.
-
#users(options = {}) ⇒ json
(also: #get_users)
Retrieves a list of existing users.
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.
45 46 47 48 49 |
# File 'lib/auth0/api/v2/users.rb', line 45 def create_user(name, = {}) request_params = Hash[.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
77 78 79 80 81 |
# File 'lib/auth0/api/v2/users.rb', line 77 def delete_user(user_id) raise 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
110 111 112 113 114 115 |
# File 'lib/auth0/api/v2/users.rb', line 110 def delete_user_provider(user_id, provider_name) raise Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty? raise 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_users ⇒ Object
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 |
#link_user_account(user_id, body) ⇒ json
Links the account specified in the body (secondary account) to the account specified by the id param of the URL (primary account).
-
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.
-
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.
130 131 132 133 134 135 |
# File 'lib/auth0/api/v2/users.rb', line 130 def link_user_account(user_id, body) raise Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty? raise 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.
99 100 101 102 103 104 |
# File 'lib/auth0/api/v2/users.rb', line 99 def patch_user(user_id, body) raise Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty? raise Auth0::InvalidParameter, 'Must supply a valid body' if body.to_s.empty? path = "#{users_path}/#{user_id}" patch(path, body) end |
#unlink_users_account(user_id, provider, secondary_user_id) ⇒ json
Unlink a user account
144 145 146 147 148 149 150 |
# File 'lib/auth0/api/v2/users.rb', line 144 def unlink_users_account(user_id, provider, secondary_user_id) raise Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty? raise Auth0::MissingUserId, 'Must supply a valid secondary user_id' if secondary_user_id.to_s.empty? raise 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
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) raise 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 |
#user_logs(user_id, options = {}) ⇒ json Also known as: get_user_log_events
Retrieve every log event for a specific user id rubocop:disable Metrics/MethodLength, Metrics/AbcSize
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
# File 'lib/auth0/api/v2/users.rb', line 162 def user_logs(user_id, = {}) raise Auth0::MissingUserId, 'Must supply a valid user_id' if user_id.to_s.empty? path = "#{users_path}/#{user_id}/logs" request_params = { user_id: user_id, per_page: .fetch(:per_page, nil), page: .fetch(:page, nil), include_totals: .fetch(:include_totals, nil), sort: .fetch(:sort, nil) } if request_params[:per_page].to_i > 100 raise Auth0::InvalidParameter, 'The total amount of entries per page should be less than 100' end sort_pattern = /^(([a-zA-Z0-9_\.]+))\:(1|-1)$/ if !request_params[:sort].nil? && !sort_pattern.match(request_params[:sort]) raise Auth0::InvalidParameter, 'Sort does not match pattern ^(([a-zA-Z0-9_\\.]+))\\:(1|-1)$' end get(path, request_params) end |
#users(options = {}) ⇒ json Also known as: get_users
Retrieves a list of existing users. normalized user profile are searchable.
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( = {}) request_params = { per_page: .fetch(:per_page, nil), page: .fetch(:page, nil), include_totals: .fetch(:include_totals, nil), sort: .fetch(:sort, nil), connection: .fetch(:connection, nil), fields: .fetch(:fields, nil), include_fields: .fetch(:include_fields, nil), q: .fetch(:q, nil) } request_params[:search_engine] = :v2 if request_params[:q] get(users_path, request_params) end |