class Nexpose::SiloAccess

Attributes

all_groups[RW]
all_sites[RW]
default[RW]
groups[RW]
role_name[RW]
silo_id[RW]
sites[RW]

Public Class Methods

new(&block) click to toggle source
# File lib/nexpose/multi_tenant_user.rb, line 171
def initialize(&block)
  instance_eval(&block) if block_given?
  @sites = Array(@sites)
  @groups = Array(@groups)
end
parse(xml) click to toggle source
# File lib/nexpose/multi_tenant_user.rb, line 206
def self.parse(xml)
  new do |access|
    access.all_groups = xml.attributes['all-groups'].to_s.chomp.eql?('true')
    access.all_sites  = xml.attributes['all-sites'].to_s.chomp.eql?('true')
    access.role_name  = xml.attributes['role-name']
    access.silo_id    = xml.attributes['silo-id']
    access.default    = xml.attributes['default-silo'].to_s.chomp.eql?('true')
    access.sites      = []
    xml.elements.each('AllowedSites/AllowedSite') { |site| access.sites << site.attributes['id'].to_i }
    access.groups = []
    xml.elements.each('AllowedGroups/AllowedGroup') { |group| access.groups << group.attributes['id'].to_i }
  end
end

Public Instance Methods

as_xml() click to toggle source
# File lib/nexpose/multi_tenant_user.rb, line 177
def as_xml
  xml = REXML::Element.new('SiloAccess')
  xml.add_attributes({ 'all-groups'   => @all_groups,
                       'all-sites'    => @all_sites,
                       'role-name'    => @role_name,
                       'silo-id'      => @silo_id,
                       'default-silo' => @default })

  unless @groups.empty?
    groups = xml.add_element('AllowedGroups')
    @groups.each do |group|
      groups.add_element('AllowedGroup', { 'id' => group })
    end
  end

  unless @sites.empty?
    sites = xml.add_element('AllowedSites')
    @sites.each do |site|
      sites.add_element('AllowedSite', { 'id' => site })
    end
  end

  xml
end
to_xml() click to toggle source
# File lib/nexpose/multi_tenant_user.rb, line 202
def to_xml
  as_xml.to_s
end