Module: Opendistro::Client::Users

Included in:
Opendistro::Client
Defined in:
lib/opendistro/client/users.rb

Overview

Defines methods related to users.

Instance Method Summary collapse

Instance Method Details

#create_user(username, password, options = {}) ⇒ Opendistro::ObjectifiedHash

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

Examples:

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

Parameters:

  • username(required) (String)

    The username of a user.

  • password(required) (String)

    The password of a user.

  • options (Hash) (defaults to: {})

    A customizable set of options.

Returns:

Raises:

  • (ArgumentError)


42
43
44
45
46
# 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) ⇒ Opendistro::ObjectifiedHash

Deletes a user.

Examples:

Opendistro.delete_user(1)

Parameters:

  • username (String)

    The username of a user.

Returns:



67
68
69
# File 'lib/opendistro/client/users.rb', line 67

def delete_user(username)
  delete("/_opendistro/_security/api/internalusers/#{username}")
end

#edit_user(username, options = {}) ⇒ Opendistro::ObjectifiedHash

Updates a user.

Examples:

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

Parameters:

  • id (Integer)

    The ID of a user.

  • options (Hash) (defaults to: {})

    A customizable set of options.

Returns:



56
57
58
# 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) ⇒ Opendistro::ObjectifiedHash

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

Examples:

Opendistro.user
Opendistro.user('kibanero')

Parameters:

  • name (String)

    The name of a user.

Returns:



26
27
28
# 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

#usersOpendistro::ObjectifiedHash

Gets a list of users.

Examples:

Opendistro.users

Returns:



13
14
15
# File 'lib/opendistro/client/users.rb', line 13

def users
  get('/_opendistro/_security/api/internalusers/')
end