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
(also: #update_user)
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 Auth0 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.
48 49 50 51 52 |
# File 'lib/auth0/api/v2/users.rb', line 48 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
80 81 82 83 84 |
# File 'lib/auth0/api/v2/users.rb', line 80 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
114 115 116 117 118 119 |
# File 'lib/auth0/api/v2/users.rb', line 114 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
56 57 58 |
# File 'lib/auth0/api/v2/users.rb', line 56 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.
134 135 136 137 138 139 |
# File 'lib/auth0/api/v2/users.rb', line 134 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 Also known as: update_user
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.
102 103 104 105 106 107 |
# File 'lib/auth0/api/v2/users.rb', line 102 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? || body.empty? path = "#{users_path}/#{user_id}" patch(path, body) end |
#unlink_users_account(user_id, provider, secondary_user_id) ⇒ json
Unlink a user account
148 149 150 151 152 153 154 |
# File 'lib/auth0/api/v2/users.rb', line 148 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
67 68 69 70 71 72 73 74 75 |
# File 'lib/auth0/api/v2/users.rb', line 67 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
167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 |
# File 'lib/auth0/api/v2/users.rb', line 167 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 Auth0 users.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/auth0/api/v2/users.rb', line 24 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), search_engine: .fetch(:search_engine, nil) } get(users_path, request_params) end |