class S3Secure::Summary::Items

Public Class Methods

new(options, buckets) click to toggle source

override initialize

# File lib/s3_secure/summary/items.rb, line 6
def initialize(options, buckets)
  @options, @buckets = options, buckets
  @ssl, @encrypted = @options[:ssl], @options[:encrypted]
end

Public Instance Methods

all_items() click to toggle source

Triggers loading of items

# File lib/s3_secure/summary/items.rb, line 32
def all_items
  load_items!
end
filtered_items() click to toggle source
# File lib/s3_secure/summary/items.rb, line 11
def filtered_items
  items = all_items.select do |item|
    case @ssl
    when "yes", "no"
      @ssl == item.ssl
    else # any or fallback
      true
    end
  end

  items.select do |item|
    case @encrypted
    when "yes", "no"
      @encrypted == item.encrypted
    else # any or fallback
      true
    end
  end
end
load_items!() click to toggle source
# File lib/s3_secure/summary/items.rb, line 36
def load_items!
  @buckets.map do |bucket|
    Item.new(bucket,
             ssl: ssl?(bucket) ? "yes" : "no",
             encrypted: encrypted?(bucket) ? "yes" : "no")
  end
end

Private Instance Methods

encrypted?(bucket) click to toggle source
# File lib/s3_secure/summary/items.rb, line 55
def encrypted?(bucket)
  s3 = s3_regional_client(bucket)
  list = S3Secure::Encryption::List.new(@options)
  list.set_s3(s3)

  rules = list.get_encryption_rules(bucket)
  !!rules
end
ssl?(bucket) click to toggle source
# File lib/s3_secure/summary/items.rb, line 46
def ssl?(bucket)
  list = S3Secure::Policy::List.new(@options)

  bucket_policy = list.get_policy(bucket)
  document = S3Secure::Policy::Document.new(bucket, bucket_policy)
  document.has?("ForceSSLOnlyAccess")
end