Class: S3Secure::Policy::Document

Inherits:
Object
  • Object
show all
Extended by:
Memoist
Defined in:
lib/s3_secure/policy/document.rb,
lib/s3_secure/policy/document/base.rb,
lib/s3_secure/policy/document/force_ssl_only_access.rb,
lib/s3_secure/policy/document/force_ssl_only_access_remove.rb

Defined Under Namespace

Classes: Base, ForceSSLOnlyAccess, ForceSSLOnlyAccessRemove

Instance Method Summary collapse

Constructor Details

#initialize(bucket, bucket_policy, remove: false) ⇒ Document

Returns a new instance of Document.



7
8
9
# File 'lib/s3_secure/policy/document.rb', line 7

def initialize(bucket, bucket_policy, remove: false)
  @bucket, @bucket_policy, @remove = bucket, bucket_policy, remove # existing document policy
end

Instance Method Details

#checkerObject



22
23
24
# File 'lib/s3_secure/policy/document.rb', line 22

def checker
  Checker.new(@bucket_policy)
end

#policy_document(sid) ⇒ Object

Returns JSON text Currently only support adding ForceSSLOnlyAccess document policy.



13
14
15
16
17
18
19
20
# File 'lib/s3_secure/policy/document.rb', line 13

def policy_document(sid)
  enforcer_class = "S3Secure::Policy::Document::#{sid}"
  enforcer_class += "Remove" if @remove
  enforcer_class = enforcer_class.constantize # IE: ForceSSLOnlyAccess or ForceSSLOnlyAccessRemove
  enforcer = enforcer_class.new(@bucket, @bucket_policy)
  policy = enforcer.policy_document
  JSON.pretty_generate(policy) if policy
end