class Shibkit::MetaMeta::Provider

Class to represent the metadata of a Shibboleth IDP or SP

Constants

MDUI_ROOT
REQUIRED_QUACKS
ROOT_ELEMENT

Element and attribute used to select XML for new objects

TARGET_ATTR

Attributes

descriptions[RW]
display_names[RW]
domains[RW]
entity_id[RW]

The URI of the entity

entity_uri[RW]

The URI of the entity

geolocation_urls[RW]
info_urls[RW]
ip_blocks[RW]
keyword_sets[RW]
organisation[RW]
privacy_urls[RW]
uri[RW]

The URI of the entity

valid[R]
valid?[R]

Public Instance Methods

description(lang=:en) click to toggle source
# File lib/shibkit/meta_meta/provider.rb, line 85
def description(lang=:en)
  
  return descriptions[lang] unless descriptions[lang].to_s.empty?
  
   if self.kind_of?(Shibkit::MetaMeta::SP) and default_service
      return default_service.description(lang) unless default_service.description(lang).to_s.empty?
    end
   
  if organisation
    return organisation.display_name unless organisation.display_name.to_s.empty?
    return organisation.name         unless organisation.name.to_s.empty?
  end
  
  return ""
  
end
display_name(lang=:en) click to toggle source
# File lib/shibkit/meta_meta/provider.rb, line 68
def display_name(lang=:en)
  
  return display_names[lang] unless display_names[lang].to_s.empty?
  
  if self.kind_of?(Shibkit::MetaMeta::SP) and default_service
    return self.default_service.name[lang] unless default_service.name[lang].to_s.empty?
  end
  
  if organisation
    return organisation.display_name  unless organisation.display_name.to_s.empty?
    return [organisation.name, "service"].join(' ') unless organisation.name.to_s.empty?
  end
  
  return entity_id
  
end
info_url(lang=:en) click to toggle source
# File lib/shibkit/meta_meta/provider.rb, line 108
def info_url(lang=:en)
  
  return info_urls[lang] || nil
  
end
keywords(lang=:en) click to toggle source
# File lib/shibkit/meta_meta/provider.rb, line 102
def keywords(lang=:en)

  return keyword_sets[lang] || []

end
logos(lang=:en) click to toggle source
# File lib/shibkit/meta_meta/provider.rb, line 120
def logos(lang=:en)
  
  return logos[lang] || []
  
end
privacy_url(lang=:en) click to toggle source
# File lib/shibkit/meta_meta/provider.rb, line 114
def privacy_url(lang=:en)
  
  return privacy_urls[lang] || nil
  
end
purge_xml(cascade=true) click to toggle source
# File lib/shibkit/meta_meta/provider.rb, line 126
def purge_xml(cascade=true)
  
  super
  
  return unless cascade
  
  @logos.values.each do |logo_set|
    
    logo_set.each { |logo| logo.purge_xml(cascade)}
    
  end
  
end
textify_xml(cascade=true) click to toggle source
# File lib/shibkit/meta_meta/provider.rb, line 140
def textify_xml(cascade=true)
  
  super
  
  return unless cascade
  
  @logos.values.each do |logo_set|
    
    logo_set.each { |logo| logo.textify_xml(cascade)}
    
  end
  
end
to_s() click to toggle source
# File lib/shibkit/meta_meta/provider.rb, line 62
def to_s
  
  return uri
  
end

Private Instance Methods

parse_xml() click to toggle source
# File lib/shibkit/meta_meta/provider.rb, line 156
def parse_xml
  
  self.entity_uri     = @noko['entityID']
  
  mdui_root = self.class::MDUI_ROOT
  
  ## Display names
  @display_names = extract_lang_map_of_strings("xmlns:#{mdui_root}/xmlns:Extensions/mdui:UIInfo/mdui:DisplayName")
  
  ## Descriptions
  @descriptions = extract_lang_map_of_strings("xmlns:#{mdui_root}/xmlns:Extensions/mdui:UIInfo/mdui:Description")
  
  ## Keywords
  @keyword_sets = extract_lang_map_of_string_lists("xmlns:#{mdui_root}/xmlns:Extensions/mdui:UIInfo/mdui:Keywords")
      
  ## Information URLs
  @info_urls = extract_lang_map_of_strings("xmlns:#{mdui_root}/xmlns:Extensions/mdui:UIInfo/mdui:InformationURL")

  ## Privacy Statement URLs
  @privacy_urls = extract_lang_map_of_strings("xmlns:#{mdui_root}/xmlns:Extensions/mdui:UIInfo/mdui:PrivacyStatementURL")

  ## Logos
  @logos = extract_lang_map_of_objects("xmlns:#{mdui_root}/xmlns:Extensions/mdui:UIInfo/mdui:Logo",
    Shibkit::MetaMeta::Logo)
  
  ## IP Address Ranges
  @ip_blocks = extract_simple_list("xmlns:#{mdui_root}/xmlns:Extensions/mdui:DiscoHints/mdui:IPHint")
  
  ## DNS Domain Names
  @domains = extract_simple_list("xmlns:#{mdui_root}/xmlns:Extensions/mdui:DiscoHints/mdui:DomainHint")
  
  ## Geolocations
  @geolocations = extract_simple_list("xmlns:#{mdui_root}/xmlns:Extensions/mdui:DiscoHints/mdui:GeolocationHint")
    
end