Class: Auth0::Users::Roles::Client
- Inherits:
-
Object
- Object
- Auth0::Users::Roles::Client
- Defined in:
- lib/auth0/users/roles/client.rb
Instance Method Summary collapse
-
#assign(request_options: {}, **params) ⇒ untyped
Assign one or more existing user roles to a user.
-
#delete(request_options: {}, **params) ⇒ untyped
Remove one or more specified user roles assigned to a user.
- #initialize(client:) ⇒ void constructor
-
#list(request_options: {}, **params) ⇒ Auth0::Types::ListUserRolesOffsetPaginatedResponseContent
Retrieve detailed list of all user roles currently assigned to a user.
Constructor Details
#initialize(client:) ⇒ void
10 11 12 |
# File 'lib/auth0/users/roles/client.rb', line 10 def initialize(client:) @client = client end |
Instance Method Details
#assign(request_options: {}, **params) ⇒ untyped
Assign one or more existing user roles to a user. For more information, review Role-Based Access Control.
Note: New roles cannot be created through this action. Additionally, this action is used to assign roles to a user in the context of your whole tenant. To assign roles in the context of a specific Organization, use the following endpoint: Assign user roles to an Organization member.
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/auth0/users/roles/client.rb', line 105 def assign(request_options: {}, **params) params = Auth0::Internal::Types::Utils.normalize_keys(params) request_data = Auth0::Users::Roles::Types::AssignUserRolesRequestContent.new(params).to_h non_body_param_names = %w[id] body = request_data.except(*non_body_param_names) request = Auth0::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "users/#{URI.encode_uri_component(params[:id].to_s)}/roles", body: body, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Auth0::Errors::TimeoutError end code = response.code.to_i return if code.between?(200, 299) error_class = Auth0::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end |
#delete(request_options: {}, **params) ⇒ untyped
Remove one or more specified user roles assigned to a user.
Note: This action removes a role from a user in the context of your whole tenant. If you want to unassign a role from a user in the context of a specific Organization, use the following endpoint: Delete user roles from an Organization member.
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
# File 'lib/auth0/users/roles/client.rb', line 153 def delete(request_options: {}, **params) params = Auth0::Internal::Types::Utils.normalize_keys(params) request_data = Auth0::Users::Roles::Types::DeleteUserRolesRequestContent.new(params).to_h non_body_param_names = %w[id] body = request_data.except(*non_body_param_names) request = Auth0::Internal::JSON::Request.new( base_url: [:base_url], method: "DELETE", path: "users/#{URI.encode_uri_component(params[:id].to_s)}/roles", body: body, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Auth0::Errors::TimeoutError end code = response.code.to_i return if code.between?(200, 299) error_class = Auth0::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end |
#list(request_options: {}, **params) ⇒ Auth0::Types::ListUserRolesOffsetPaginatedResponseContent
Retrieve detailed list of all user roles currently assigned to a user.
Note: This action retrieves all roles assigned to a user in the context of your whole tenant. To retrieve Organization-specific roles, use the following endpoint: Get user roles assigned to an Organization member.
Note: Returns only direct role assignments. To also include group-based role assignments, use GET /api/v2/users/{id}/effective-roles.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/auth0/users/roles/client.rb', line 44 def list(request_options: {}, **params) params = Auth0::Internal::Types::Utils.normalize_keys(params) query_params = {} query_params["per_page"] = params.fetch(:per_page, 50) query_params["page"] = params.fetch(:page, 0) query_params["include_totals"] = params.fetch(:include_totals, true) Auth0::Internal::OffsetItemIterator.new( initial_page: query_params["page"], item_field: :roles, has_next_field: nil, step: false ) do |next_page| query_params["page"] = next_page request = Auth0::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "users/#{URI.encode_uri_component(params[:id].to_s)}/roles", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Auth0::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) parsed_response = (response.body.to_s.empty? ? nil : Auth0::Types::ListUserRolesOffsetPaginatedResponseContent.load(response.body)) [parsed_response, response] else error_class = Auth0::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end end |