Sha256: 69b769bb4859d1914422f79d8cd9f8d9353dbf4cfac0f999ce6fe2029fd50f65

Contents?: true

Size: 1.43 KB

Versions: 15

Compression:

Stored size: 1.43 KB

Contents

module Heirloom

  class Authorizer

    def initialize(args)
      @config = args[:config]
      @name   = args[:name]
      @id     = args[:id]
      @logger = @config.logger
    end

    def authorize(args)
      @accounts = args[:accounts]
      regions = args[:regions]

      return false unless validate_format_of_accounts

      @logger.info "Authorizing #{@accounts.join(', ')}."

      regions.each do |region|
        bucket = reader.get_bucket :region => region

        s3_acl = ACL::S3.new :config => @config,
                             :region => region

        s3_acl.allow_read_access_from_accounts :key_name   => @id,
                                               :key_folder => @name,
                                               :accounts   => @accounts,
                                               :bucket     => bucket
      end

      @logger.info "Authorization complete."
      true
    end

    private

    def validate_format_of_accounts
      @accounts.each do |account|
        unless validate_email account
          @logger.error "#{account} is not a valid email address."
          return false
        end
      end
    end

    def validate_email email
      email_pattern = (email =~ /^.*@.*\..*$/)
      email_pattern.nil? ? false : true
    end

    def reader
      @reader ||= Reader.new :config => @config,
                             :name   => @name,
                             :id     => @id
    end

  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
heirloom-0.9.0 lib/heirloom/archive/authorizer.rb
heirloom-0.8.3 lib/heirloom/archive/authorizer.rb
heirloom-0.8.2 lib/heirloom/archive/authorizer.rb
heirloom-0.8.1 lib/heirloom/archive/authorizer.rb
heirloom-0.8.0 lib/heirloom/archive/authorizer.rb
heirloom-0.7.4 lib/heirloom/archive/authorizer.rb
heirloom-0.7.3 lib/heirloom/archive/authorizer.rb
heirloom-0.7.3rc2 lib/heirloom/archive/authorizer.rb
heirloom-0.7.3rc1 lib/heirloom/archive/authorizer.rb
heirloom-0.7.2 lib/heirloom/archive/authorizer.rb
heirloom-0.7.2rc2 lib/heirloom/archive/authorizer.rb
heirloom-0.7.2rc1 lib/heirloom/archive/authorizer.rb
heirloom-0.7.1 lib/heirloom/archive/authorizer.rb
heirloom-0.7.0 lib/heirloom/archive/authorizer.rb
heirloom-0.7.0rc1 lib/heirloom/archive/authorizer.rb