module Opendistro::Client::Users

Defines methods related to users. @see opendistro.github.io/for-elasticsearch-docs/docs/security/access-control/api/#users

Public Instance Methods

create_user(username, password, options = {}) click to toggle source

Creates a new user. Requires authentication from an admin account.

@example

Opendistro.create_user('joe','secret', { attribute1: ...})
or
Opendistro.create_user('joe','secret', { description: 'user for test' })

@param [String] username(required) The username of a user. @param [String] password(required) The password of a user. @param [Hash] options A customizable set of options. @return [Opendistro::ObjectifiedHash] Information about created user.

# File lib/opendistro/client/users.rb, line 42
def create_user(username, password, options = {})
  raise ArgumentError, 'Missing required parameters' unless username || password

  put("/_opendistro/_security/api/internalusers/#{username}", body: { password: password }.merge!(options))
end
delete_user(username) click to toggle source

Deletes a user.

@example

Opendistro.delete_user(1)

@param [String] username The username of a user. @return [Opendistro::ObjectifiedHash] Information about deleted user.

# File lib/opendistro/client/users.rb, line 67
def delete_user(username)
  delete("/_opendistro/_security/api/internalusers/#{username}")
end
edit_user(username, options = {}) click to toggle source

Updates a user.

@example

Opendistro.edit_user('admin', [{ 'op' => 'replace', 'path': '/description', 'value': 'new description' }])

@param [Integer] id The ID of a user. @param [Hash] options A customizable set of options. @return [Opendistro::ObjectifiedHash] Information about created user.

# File lib/opendistro/client/users.rb, line 56
def edit_user(username, options = {})
  patch("/_opendistro/_security/api/internalusers/#{username}", body: options.to_json)
end
user(username = nil) click to toggle source

Gets information about a user. Will return information about an authorized user if no user passed.

@example

Opendistro.user
Opendistro.user('kibanero')

@param [String] name The name of a user. @return [Opendistro::ObjectifiedHash]

# File lib/opendistro/client/users.rb, line 26
def user(username = nil)
  username.nil? ? get('/_opendistro/_security/api/account') : get("/_opendistro/_security/api/internalusers/#{username}")
end
users() click to toggle source

Gets a list of users.

@example

Opendistro.users

@return [Opendistro::ObjectifiedHash]

# File lib/opendistro/client/users.rb, line 13
def users
  get('/_opendistro/_security/api/internalusers/')
end