class Nexpose::MultiTenantUser

Attributes

auth_source_id[RW]
email[RW]
enabled[RW]
full_name[RW]
id[RW]
password[RW]
silo_access[RW]
superuser[RW]
user_name[RW]

Public Class Methods

load(connection, user_id) click to toggle source
# File lib/nexpose/multi_tenant_user.rb, line 150
def self.load(connection, user_id)
  r = connection.execute(connection.make_xml('MultiTenantUserConfigRequest', { 'user-id' => user_id }), '1.2')

  if r.success
    r.res.elements.each('MultiTenantUserConfigResponse/MultiTenantUserConfig') do |config|
      return MultiTenantUser.parse(config)
    end
  end
  nil
end
new(&block) click to toggle source
# File lib/nexpose/multi_tenant_user.rb, line 75
def initialize(&block)
  instance_eval(&block) if block_given?

  @silo_access = Array(@silo_access)
end
parse(xml) click to toggle source
# File lib/nexpose/multi_tenant_user.rb, line 136
def self.parse(xml)
  new do |user|
    user.id             = xml.attributes['id'].to_i
    user.full_name      = xml.attributes['full-name']
    user.user_name      = xml.attributes['user-name']
    user.email          = xml.attributes['email']
    user.superuser      = xml.attributes['superuser'].to_s.chomp.eql?('true')
    user.enabled        = xml.attributes['enabled'].to_s.chomp.eql?('true')
    user.auth_source_id = xml.attributes['authsrcid'].to_i
    user.silo_access    = []
    xml.elements.each('SiloAccesses/SiloAccess') { |access| user.silo_access << SiloAccess.parse(access) }
  end
end

Public Instance Methods

as_xml() click to toggle source
# File lib/nexpose/multi_tenant_user.rb, line 113
def as_xml
  xml = REXML::Element.new('MultiTenantUserConfig')
  xml.add_attributes({ 'id'        => @id,
                       'full-name' => @full_name,
                       'user-name' => @user_name,
                       'authsrcid' => @auth_source_id,
                       'email'     => @email,
                       'password'  => @password,
                       'superuser' => @superuser,
                       'enabled'   => @enabled })
  siloaccesses = xml.add_element('SiloAccesses')
  @silo_access.each { |silo_access| siloaccesses.add_element(silo_access.as_xml) }
  xml
end
create(connection) click to toggle source

Saves this silo user to a Nexpose console.

@param [Connection] connection Connection to console where this silo user will be saved. @return [String] User ID assigned to this configuration, if successful.

# File lib/nexpose/multi_tenant_user.rb, line 106
def create(connection)
  xml = connection.make_xml('MultiTenantUserCreateRequest')
  xml.add_element(as_xml)
  r = connection.execute(xml, '1.2')
  @id = r.attributes['user-id'] if r.success
end
delete(connection) click to toggle source
# File lib/nexpose/multi_tenant_user.rb, line 128
def delete(connection)
  connection.delete_silo_user(@id)
end
save(connection) click to toggle source
# File lib/nexpose/multi_tenant_user.rb, line 81
def save(connection)
  if @id
    update(connection)
  else
    create(connection)
  end
end
to_xml() click to toggle source
# File lib/nexpose/multi_tenant_user.rb, line 132
def to_xml
  as_xml.to_s
end
update(connection) click to toggle source

Updates this silo user on a Nexpose console.

@param [Connection] connection Connection to console where this silo user will be saved. @return [String] User ID assigned to this configuration, if successful.

# File lib/nexpose/multi_tenant_user.rb, line 94
def update(connection)
  xml = connection.make_xml('MultiTenantUserUpdateRequest')
  xml.add_element(as_xml)
  r = connection.execute(xml, '1.2')
  @id = r.attributes['user-id'] if r.success
end