Class: Gcloud::Storage::File::Acl
- Inherits:
-
Object
- Object
- Gcloud::Storage::File::Acl
- Defined in:
- lib/gcloud/storage/file/acl.rb
Overview
# File Access Control List
Represents a File’s Access Control List.
Constant Summary collapse
- RULES =
{ "authenticatedRead" => "authenticatedRead", "auth" => "authenticatedRead", "auth_read" => "authenticatedRead", "authenticated" => "authenticatedRead", "authenticated_read" => "authenticatedRead", "bucketOwnerFullControl" => "bucketOwnerFullControl", "owner_full" => "bucketOwnerFullControl", "bucketOwnerRead" => "bucketOwnerRead", "owner_read" => "bucketOwnerRead", "private" => "private", "projectPrivate" => "projectPrivate", "project_private" => "projectPrivate", "publicRead" => "publicRead", "public" => "publicRead", "public_read" => "publicRead" }
Class Method Summary collapse
Instance Method Summary collapse
-
#add_owner(entity, generation: nil) ⇒ Object
Grants owner permission to the file.
-
#add_reader(entity, generation: nil) ⇒ Object
Grants reader permission to the file.
-
#add_writer(entity, generation: nil) ⇒ Object
Grants writer permission to the file.
-
#auth! ⇒ Object
(also: #authenticatedRead!, #auth_read!, #authenticated!, #authenticated_read!)
Convenience method to apply the ‘authenticatedRead` predefined ACL rule to the file.
-
#delete(entity, generation: nil) ⇒ Object
Permanently deletes the entity from the file’s access control list.
-
#initialize(file) ⇒ Acl
constructor
Must provide a valid Bucket object.
-
#owner_full! ⇒ Object
(also: #bucketOwnerFullControl!)
Convenience method to apply the ‘bucketOwnerFullControl` predefined ACL rule to the file.
-
#owner_read! ⇒ Object
(also: #bucketOwnerRead!)
Convenience method to apply the ‘bucketOwnerRead` predefined ACL rule to the file.
-
#owners ⇒ Array<String>
Lists the owners of the file.
-
#private! ⇒ Object
Convenience method to apply the ‘private` predefined ACL rule to the file.
-
#project_private! ⇒ Object
(also: #projectPrivate!)
Convenience method to apply the ‘projectPrivate` predefined ACL rule to the file.
-
#public! ⇒ Object
(also: #publicRead!, #public_read!)
Convenience method to apply the ‘publicRead` predefined ACL rule to the file.
-
#readers ⇒ Array<String>
Lists the readers of the file.
-
#reload! ⇒ Object
(also: #refresh!)
Reloads all Access Control List data for the file.
-
#writers ⇒ Array<String>
Lists the owners of the file.
Constructor Details
#initialize(file) ⇒ Acl
Must provide a valid Bucket object.
56 57 58 59 60 61 62 63 |
# File 'lib/gcloud/storage/file/acl.rb', line 56 def initialize file @bucket = file.bucket @file = file.name @connection = file.connection @owners = nil @writers = nil @readers = nil end |
Class Method Details
.predefined_rule_for(rule_name) ⇒ Object
356 357 358 |
# File 'lib/gcloud/storage/file/acl.rb', line 356 def self.predefined_rule_for rule_name RULES[rule_name.to_s] end |
Instance Method Details
#add_owner(entity, generation: nil) ⇒ Object
Grants owner permission to the file.
193 194 195 196 197 198 199 200 201 202 203 |
# File 'lib/gcloud/storage/file/acl.rb', line 193 def add_owner entity, generation: nil = { generation: generation } resp = @connection.insert_file_acl @bucket, @file, entity, "OWNER", if resp.success? entity = resp.data["entity"] @owners.push entity unless @owners.nil? return entity end nil end |
#add_reader(entity, generation: nil) ⇒ Object
Grants reader permission to the file.
301 302 303 304 305 306 307 308 309 310 311 |
# File 'lib/gcloud/storage/file/acl.rb', line 301 def add_reader entity, generation: nil = { generation: generation } resp = @connection.insert_file_acl @bucket, @file, entity, "READER", if resp.success? entity = resp.data["entity"] @readers.push entity unless @readers.nil? return entity end nil end |
#add_writer(entity, generation: nil) ⇒ Object
Grants writer permission to the file.
247 248 249 250 251 252 253 254 255 256 257 |
# File 'lib/gcloud/storage/file/acl.rb', line 247 def add_writer entity, generation: nil = { generation: generation } resp = @connection.insert_file_acl @bucket, @file, entity, "WRITER", if resp.success? entity = resp.data["entity"] @writers.push entity unless @writers.nil? return entity end nil end |
#auth! ⇒ Object Also known as: authenticatedRead!, auth_read!, authenticated!, authenticated_read!
Convenience method to apply the ‘authenticatedRead` predefined ACL rule to the file.
377 378 379 |
# File 'lib/gcloud/storage/file/acl.rb', line 377 def auth! update_predefined_acl! "authenticatedRead" end |
#delete(entity, generation: nil) ⇒ Object
Permanently deletes the entity from the file’s access control list.
343 344 345 346 347 348 349 350 351 352 353 |
# File 'lib/gcloud/storage/file/acl.rb', line 343 def delete entity, generation: nil = { generation: generation } resp = @connection.delete_file_acl @bucket, @file, entity, if resp.success? @owners.delete entity unless @owners.nil? @writers.delete entity unless @writers.nil? @readers.delete entity unless @readers.nil? return true end false end |
#owner_full! ⇒ Object Also known as: bucketOwnerFullControl!
Convenience method to apply the ‘bucketOwnerFullControl` predefined ACL rule to the file.
400 401 402 |
# File 'lib/gcloud/storage/file/acl.rb', line 400 def owner_full! update_predefined_acl! "bucketOwnerFullControl" end |
#owner_read! ⇒ Object Also known as: bucketOwnerRead!
Convenience method to apply the ‘bucketOwnerRead` predefined ACL rule to the file.
420 421 422 |
# File 'lib/gcloud/storage/file/acl.rb', line 420 def owner_read! update_predefined_acl! "bucketOwnerRead" end |
#owners ⇒ Array<String>
Lists the owners of the file.
104 105 106 107 |
# File 'lib/gcloud/storage/file/acl.rb', line 104 def owners reload! if @owners.nil? @owners end |
#private! ⇒ Object
Convenience method to apply the ‘private` predefined ACL rule to the file.
440 441 442 |
# File 'lib/gcloud/storage/file/acl.rb', line 440 def private! update_predefined_acl! "private" end |
#project_private! ⇒ Object Also known as: projectPrivate!
Convenience method to apply the ‘projectPrivate` predefined ACL rule to the file.
459 460 461 |
# File 'lib/gcloud/storage/file/acl.rb', line 459 def project_private! update_predefined_acl! "projectPrivate" end |
#public! ⇒ Object Also known as: publicRead!, public_read!
Convenience method to apply the ‘publicRead` predefined ACL rule to the file.
479 480 481 |
# File 'lib/gcloud/storage/file/acl.rb', line 479 def public! update_predefined_acl! "publicRead" end |
#readers ⇒ Array<String>
Lists the readers of the file.
146 147 148 149 |
# File 'lib/gcloud/storage/file/acl.rb', line 146 def readers reload! if @readers.nil? @readers end |
#reload! ⇒ Object Also known as: refresh!
Reloads all Access Control List data for the file.
79 80 81 82 83 84 85 |
# File 'lib/gcloud/storage/file/acl.rb', line 79 def reload! resp = @connection.list_file_acls @bucket, @file acls = resp.data["items"] @owners = entities_from_acls acls, "OWNER" @writers = entities_from_acls acls, "WRITER" @readers = entities_from_acls acls, "READER" end |
#writers ⇒ Array<String>
Lists the owners of the file.
125 126 127 128 |
# File 'lib/gcloud/storage/file/acl.rb', line 125 def writers reload! if @writers.nil? @writers end |