Class: Couchbase::Management::UserManager

Inherits:
Object
  • Object
show all
Defined in:
lib/couchbase/management/user_manager.rb,
/home/runner/work/couchbase-ruby-client/couchbase-ruby-client/lib/couchbase/management/user_manager.rb

Instance Method Summary collapse

Instance Method Details

#change_password(new_password, options = Options::User::ChangePassword::DEFAULT) ⇒ Object

Changes the password of the currently authenticated user

Parameters:

Raises:

  • (ArgumentError)


345
346
347
348
349
# File 'lib/couchbase/management/user_manager.rb', line 345

def change_password(new_password, options = Options::User::ChangePassword::DEFAULT)
  @observability.record_operation(Observability::OP_UM_CHANGE_PASSWORD, options.parent_span, self, :management) do |obs_handler|
    @backend.change_password(new_password, options.timeout, obs_handler)
  end
end

#drop_group(group_name, options = Options::User::DropGroup::DEFAULT) ⇒ Object

Removes a group

Parameters:

  • group_name (String)

    name of the group

  • options (Options::User::DropGroup) (defaults to: Options::User::DropGroup::DEFAULT)

Raises:



410
411
412
413
414
# File 'lib/couchbase/management/user_manager.rb', line 410

def drop_group(group_name, options = Options::User::DropGroup::DEFAULT)
  @observability.record_operation(Observability::OP_UM_DROP_GROUP, options.parent_span, self, :management) do |obs_handler|
    @backend.group_drop(group_name, options.timeout, obs_handler)
  end
end

#drop_user(username, options = Options::User::DropUser::DEFAULT) ⇒ Object

Removes a user

Parameters:

  • username (String)

    ID of the user

  • options (Options::User::DropUser) (defaults to: Options::User::DropUser::DEFAULT)


313
314
315
316
317
# File 'lib/couchbase/management/user_manager.rb', line 313

def drop_user(username, options = Options::User::DropUser::DEFAULT)
  @observability.record_operation(Observability::OP_UM_DROP_USER, options.parent_span, self, :management) do |obs_handler|
    @backend.user_drop(options.domain, username, options.timeout, obs_handler)
  end
end

#get_all_groups(options = Options::User::GetAllGroups::DEFAULT) ⇒ Array<Group>

Gets all groups

Parameters:

Returns:



372
373
374
375
376
377
# File 'lib/couchbase/management/user_manager.rb', line 372

def get_all_groups(options = Options::User::GetAllGroups::DEFAULT)
  @observability.record_operation(Observability::OP_UM_GET_ALL_GROUPS, options.parent_span, self, :management) do |obs_handler|
    resp = @backend.group_get_all(options.timeout, obs_handler)
    resp.map { |entry| extract_group(entry) }
  end
end

#get_all_users(options = Options::User::GetAllUsers::DEFAULT) ⇒ Array<UserAndMetadata>

Gets all users

Parameters:

Returns:



272
273
274
275
276
277
# File 'lib/couchbase/management/user_manager.rb', line 272

def get_all_users(options = Options::User::GetAllUsers::DEFAULT)
  @observability.record_operation(Observability::OP_UM_GET_ALL_USERS, options.parent_span, self, :management) do |obs_handler|
    resp = @backend.user_get_all(options.domain, options.timeout, obs_handler)
    resp.map { |entry| extract_user(entry) }
  end
end

#get_group(group_name, options = Options::User::GetGroup::DEFAULT) ⇒ Group

Gets a group

Parameters:

  • group_name (String)

    name of the group to get

  • options (Options::User::GetGroup) (defaults to: Options::User::GetGroup::DEFAULT)

Returns:

Raises:



360
361
362
363
364
365
# File 'lib/couchbase/management/user_manager.rb', line 360

def get_group(group_name, options = Options::User::GetGroup::DEFAULT)
  @observability.record_operation(Observability::OP_UM_GET_GROUP, options.parent_span, self, :management) do |obs_handler|
    resp = @backend.group_get(group_name, options.timeout, obs_handler)
    extract_group(resp)
  end
end

#get_roles(options = Options::User::GetRoles::DEFAULT) ⇒ Array<RoleAndDescription>

Gets all roles supported by the server

Parameters:

Returns:



324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
# File 'lib/couchbase/management/user_manager.rb', line 324

def get_roles(options = Options::User::GetRoles::DEFAULT)
  @observability.record_operation(Observability::OP_UM_GET_ROLES, options.parent_span, self, :management) do |obs_handler|
    resp = @backend.role_get_all(options.timeout, obs_handler)
    resp.map do |r|
      RoleAndDescription.new do |role|
        role.name = r[:name]
        role.display_name = r[:display_name]
        role.description = r[:description]
        role.bucket = r[:bucket]
        role.scope = r[:scope]
        role.collection = r[:collection]
      end
    end
  end
end

#get_user(username, options = Options::User::GetUser::DEFAULT) ⇒ UserAndMetadata

Get a user

Parameters:

  • username (String)

    ID of the user

  • options (Options::User::GetUser) (defaults to: Options::User::GetUser::DEFAULT)

Returns:

Raises:



260
261
262
263
264
265
# File 'lib/couchbase/management/user_manager.rb', line 260

def get_user(username, options = Options::User::GetUser::DEFAULT)
  @observability.record_operation(Observability::OP_UM_GET_USER, options.parent_span, self, :management) do |obs_handler|
    resp = @backend.user_get(options.domain, username, options.timeout, obs_handler)
    extract_user(resp)
  end
end

#upsert_group(group, options = Options::User::UpsertGroup::DEFAULT) ⇒ Object

Creates or updates a group

Parameters:

Raises:



386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
# File 'lib/couchbase/management/user_manager.rb', line 386

def upsert_group(group, options = Options::User::UpsertGroup::DEFAULT)
  @observability.record_operation(Observability::OP_UM_UPSERT_GROUP, options.parent_span, self, :management) do |obs_handler|
    @backend.group_upsert({
      name: group.name,
      description: group.description,
      ldap_group_reference: group.ldap_group_reference,
      roles: group.roles.map do |role|
        {
          name: role.name,
          bucket: role.bucket,
          scope: role.scope,
          collection: role.collection,
        }
      end,
    }, options.timeout, obs_handler)
  end
end

#upsert_user(user, options = Options::User::UpsertUser::DEFAULT) ⇒ Object

Creates or updates a user

Parameters:

Raises:

  • (ArgumentError)


285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
# File 'lib/couchbase/management/user_manager.rb', line 285

def upsert_user(user, options = Options::User::UpsertUser::DEFAULT)
  @observability.record_operation(Observability::OP_UM_UPSERT_USER, options.parent_span, self, :management) do |obs_handler|
    @backend.user_upsert(
      options.domain,
      {
        username: user.username,
        display_name: user.display_name,
        groups: user.groups,
        password: user.password,
        roles: user.roles.map do |role|
          {
            name: role.name,
            bucket: role.bucket,
            scope: role.scope,
            collection: role.collection,
          }
        end,
      },
      options.timeout,
      obs_handler,
    )
  end
end