Class: Gcloud::Storage::File::Acl
- Inherits:
-
Object
- Object
- Gcloud::Storage::File::Acl
- Defined in:
- lib/gcloud/storage/file/acl.rb
Overview
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, options = {}) ⇒ Object
Grants owner permission to the file.
-
#add_reader(entity, options = {}) ⇒ Object
Grants reader permission to the file.
-
#add_writer(entity, options = {}) ⇒ 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, options = {}) ⇒ Object
Permenently deletes the entity from the file’s access control list.
-
#initialize(file) ⇒ Acl
constructor
Initialized a new Acl 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 ⇒ Object
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 ⇒ Object
Lists the readers of the file.
-
#refresh! ⇒ Object
Reloads all Access Control List data for the file.
-
#writers ⇒ Object
Lists the owners of the file.
Constructor Details
#initialize(file) ⇒ Acl
Initialized a new Acl object. Must provide a valid Bucket object.
54 55 56 57 58 59 60 61 |
# File 'lib/gcloud/storage/file/acl.rb', line 54 def initialize file #:nodoc: @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
:nodoc:
401 402 403 |
# File 'lib/gcloud/storage/file/acl.rb', line 401 def self.predefined_rule_for rule_name #:nodoc: RULES[rule_name.to_s] end |
Instance Method Details
#add_owner(entity, options = {}) ⇒ Object
Grants owner permission to the file.
Parameters
entity
-
The entity holding the permission, in one of the following forms: (
String
)-
user-userId
-
user-email
-
group-groupId
-
group-email
-
domain-domain
-
project-team-projectId
-
allUsers
-
allAuthenticatedUsers
-
options
-
An optional Hash for controlling additional behavior. (
Hash
) options[:generation]
-
When present, selects a specific revision of this object. Default is the latest version. (
Integer
)
Examples
Access to a file can be granted to a user by appending “user-” to the email address:
require "gcloud"
gcloud = Gcloud.new
storage = gcloud.storage
bucket = storage.bucket "my-bucket"
file = bucket.file "path/to/my-file.ext"
email = "[email protected]"
file.acl.add_owner "user-#{email}"
Access to a file can be granted to a group by appending “group-” to the email address:
require "gcloud"
gcloud = Gcloud.new
storage = gcloud.storage
bucket = storage.bucket "my-bucket"
file = bucket.file "path/to/my-file.ext"
email = "[email protected]"
file.acl.add_owner "group-#{email}"
212 213 214 215 216 217 218 219 220 221 |
# File 'lib/gcloud/storage/file/acl.rb', line 212 def add_owner entity, = {} 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, options = {}) ⇒ Object
Grants reader permission to the file.
Parameters
entity
-
The entity holding the permission, in one of the following forms: (
String
)-
user-userId
-
user-email
-
group-groupId
-
group-email
-
domain-domain
-
project-team-projectId
-
allUsers
-
allAuthenticatedUsers
-
options
-
An optional Hash for controlling additional behavior. (
Hash
) options[:generation]
-
When present, selects a specific revision of this object. Default is the latest version. (
Integer
)
Examples
Access to a file can be granted to a user by appending “user-” to the email address:
require "gcloud"
gcloud = Gcloud.new
storage = gcloud.storage
bucket = storage.bucket "my-bucket"
file = bucket.file "path/to/my-file.ext"
email = "[email protected]"
file.acl.add_reader "user-#{email}"
Access to a file can be granted to a group by appending “group-” to the email address:
require "gcloud"
gcloud = Gcloud.new
storage = gcloud.storage
bucket = storage.bucket "my-bucket"
file = bucket.file "path/to/my-file.ext"
email = "[email protected]"
file.acl.add_reader "group-#{email}"
342 343 344 345 346 347 348 349 350 351 |
# File 'lib/gcloud/storage/file/acl.rb', line 342 def add_reader entity, = {} 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, options = {}) ⇒ Object
Grants writer permission to the file.
Parameters
entity
-
The entity holding the permission, in one of the following forms: (
String
)-
user-userId
-
user-email
-
group-groupId
-
group-email
-
domain-domain
-
project-team-projectId
-
allUsers
-
allAuthenticatedUsers
-
options
-
An optional Hash for controlling additional behavior. (
Hash
) options[:generation]
-
When present, selects a specific revision of this object. Default is the latest version. (
Integer
)
Examples
Access to a file can be granted to a user by appending “user-” to the email address:
require "gcloud"
gcloud = Gcloud.new
storage = gcloud.storage
bucket = storage.bucket "my-bucket"
file = bucket.file "path/to/my-file.ext"
email = "[email protected]"
file.acl.add_writer "user-#{email}"
Access to a file can be granted to a group by appending “group-” to the email address:
require "gcloud"
gcloud = Gcloud.new
storage = gcloud.storage
bucket = storage.bucket "my-bucket"
file = bucket.file "path/to/my-file.ext"
email = "[email protected]"
file.acl.add_writer "group-#{email}"
277 278 279 280 281 282 283 284 285 286 |
# File 'lib/gcloud/storage/file/acl.rb', line 277 def add_writer entity, = {} 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!
423 424 425 |
# File 'lib/gcloud/storage/file/acl.rb', line 423 def auth! update_predefined_acl! "authenticatedRead" end |
#delete(entity, options = {}) ⇒ Object
Permenently deletes the entity from the file’s access control list.
Parameters
entity
-
The entity holding the permission, in one of the following forms: (
String
)-
user-userId
-
user-email
-
group-groupId
-
group-email
-
domain-domain
-
project-team-projectId
-
allUsers
-
allAuthenticatedUsers
-
options
-
An optional Hash for controlling additional behavior. (
Hash
) options[:generation]
-
When present, selects a specific revision of this object. Default is the latest version. (
Integer
)
Example
require "gcloud"
gcloud = Gcloud.new
storage = gcloud.storage
bucket = storage.bucket "my-bucket"
file = bucket.file "path/to/my-file.ext"
email = "[email protected]"
file.acl.delete "user-#{email}"
390 391 392 393 394 395 396 397 398 399 |
# File 'lib/gcloud/storage/file/acl.rb', line 390 def delete entity, = {} 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!
447 448 449 |
# File 'lib/gcloud/storage/file/acl.rb', line 447 def owner_full! update_predefined_acl! "bucketOwnerFullControl" end |
#owner_read! ⇒ Object Also known as: bucketOwnerRead!
468 469 470 |
# File 'lib/gcloud/storage/file/acl.rb', line 468 def owner_read! update_predefined_acl! "bucketOwnerRead" end |
#owners ⇒ Object
105 106 107 108 |
# File 'lib/gcloud/storage/file/acl.rb', line 105 def owners refresh! if @owners.nil? @owners end |
#private! ⇒ Object
489 490 491 |
# File 'lib/gcloud/storage/file/acl.rb', line 489 def private! update_predefined_acl! "private" end |
#project_private! ⇒ Object Also known as: projectPrivate!
509 510 511 |
# File 'lib/gcloud/storage/file/acl.rb', line 509 def project_private! update_predefined_acl! "projectPrivate" end |
#public! ⇒ Object Also known as: publicRead!, public_read!
530 531 532 |
# File 'lib/gcloud/storage/file/acl.rb', line 530 def public! update_predefined_acl! "publicRead" end |
#readers ⇒ Object
153 154 155 156 |
# File 'lib/gcloud/storage/file/acl.rb', line 153 def readers refresh! if @readers.nil? @readers end |
#refresh! ⇒ Object
78 79 80 81 82 83 84 |
# File 'lib/gcloud/storage/file/acl.rb', line 78 def refresh! 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 ⇒ Object
129 130 131 132 |
# File 'lib/gcloud/storage/file/acl.rb', line 129 def writers refresh! if @writers.nil? @writers end |