Class: GoogleDrive::AclEntry
- Inherits:
-
Object
- Object
- GoogleDrive::AclEntry
- Includes:
- Util
- Defined in:
- lib/google_drive/acl_entry.rb
Overview
An entry of an ACL (access control list) of a spreadsheet.
Use GoogleDrive::Acl#[] to get GoogleDrive::AclEntry object.
This code is based on github.com/guyboertje/gdata-spreadsheet-ruby .
Constant Summary
Constants included from Util
Util::EXT_TO_CONTENT_TYPE, Util::IMPORTABLE_CONTENT_TYPE_MAP
Instance Attribute Summary collapse
-
#acl ⇒ Object
readonly
Returns the value of attribute acl.
- #api_permission ⇒ Object private
- #params ⇒ Object readonly private
Instance Method Summary collapse
- #additional_roles ⇒ Object
-
#allow_file_discovery ⇒ Object
If
false
, the file is shared only with people who know the link. -
#domain ⇒ Object
The Google Apps domain name.
-
#email_address ⇒ Object
Email address of the user or the group.
- #id ⇒ Object
-
#initialize(params_or_api_permission, acl = nil) ⇒ AclEntry
constructor
params_or_api_permission
is a Hash object with keys:type
,:email_address
,:domain
,:role
and:allow_file_discovery
. - #inspect ⇒ Object
-
#role ⇒ Object
The role given to the scope.
-
#role=(role) ⇒ Object
Changes the role of the scope.
-
#type ⇒ Object
(also: #scope_type)
Type of the scope.
- #value ⇒ Object (also: #scope)
-
#with_link ⇒ Object
(also: #with_key)
If
true
, the file is shared only with people who know the link.
Methods included from Util
concat_url, construct_and_query, construct_query, convert_params, delegate_api_methods, encode_query, get_singleton_class, h
Constructor Details
#initialize(params_or_api_permission, acl = nil) ⇒ AclEntry
params_or_api_permission
is a Hash object with keys :type
, :email_address
, :domain
, :role
and :allow_file_discovery
. See GoogleDrive::Acl#push for description of the parameters.
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/google_drive/acl_entry.rb', line 19 def initialize(, acl = nil) @acl = acl if acl @api_permission = @params = nil delegate_api_methods(self, @api_permission) else @api_permission = nil @params = convert_params() end end |
Instance Attribute Details
#acl ⇒ Object (readonly)
Returns the value of attribute acl.
31 32 33 |
# File 'lib/google_drive/acl_entry.rb', line 31 def acl @acl end |
#api_permission ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
37 38 39 |
# File 'lib/google_drive/acl_entry.rb', line 37 def @api_permission end |
#params ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
34 35 36 |
# File 'lib/google_drive/acl_entry.rb', line 34 def params @params end |
Instance Method Details
#additional_roles ⇒ Object
59 60 61 |
# File 'lib/google_drive/acl_entry.rb', line 59 def additional_roles @params ? @params[:additionalRoles] : @api_permission.additional_roles end |
#allow_file_discovery ⇒ Object
If false
, the file is shared only with people who know the link. Only used for type “anyone”.
99 100 101 102 |
# File 'lib/google_drive/acl_entry.rb', line 99 def allow_file_discovery @params ? @params[:allow_file_discovery] : @api_permission.allow_file_discovery end |
#domain ⇒ Object
The Google Apps domain name.
73 74 75 |
# File 'lib/google_drive/acl_entry.rb', line 73 def domain @params ? @params[:domain] : @api_permission.domain end |
#email_address ⇒ Object
Email address of the user or the group.
68 69 70 |
# File 'lib/google_drive/acl_entry.rb', line 68 def email_address @params ? @params[:email_address] : @api_permission.email_address end |
#id ⇒ Object
63 64 65 |
# File 'lib/google_drive/acl_entry.rb', line 63 def id @params ? @params[:id] : @api_permission.id end |
#inspect ⇒ Object
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/google_drive/acl_entry.rb', line 125 def inspect case type when 'user', 'group' format( "\#<%p type=%p, email_address=%p, role=%p>", self.class, type, email_address, role ) when 'domain' format( "\#<%p type=%p, domain=%p, role=%p>", self.class, type, domain, role ) when 'anyone' format( "\#<%p type=%p, role=%p, allow_file_discovery=%p>", self.class, type, role, allow_file_discovery ) else format("\#<%p type=%p, role=%p>", self.class, type, role) end end |
#role ⇒ Object
The role given to the scope. One of:
-
“owner”: The owner.
-
“writer”: With read/write access.
-
“reader”: With read-only access.
43 44 45 |
# File 'lib/google_drive/acl_entry.rb', line 43 def role @params ? @params[:role] : @api_permission.role end |
#role=(role) ⇒ Object
Changes the role of the scope.
e.g.
spreadsheet.acl[1].role = "writer"
116 117 118 119 120 121 122 123 |
# File 'lib/google_drive/acl_entry.rb', line 116 def role=(role) if @params @params[:role] = role else @api_permission.role = role @acl.update_role(self) end end |
#type ⇒ Object Also known as: scope_type
Type of the scope. One of:
-
“user”: a Google account specified by the email_address field.
-
“group”: a Google Group specified by the email_address field.
-
“domain”: a Google Apps domain specified by the domain field.
-
“anyone”: Publicly shared with all users.
53 54 55 |
# File 'lib/google_drive/acl_entry.rb', line 53 def type @params ? @params[:type] : @api_permission.type end |
#value ⇒ Object Also known as: scope
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/google_drive/acl_entry.rb', line 77 def value if @params case @params[:type] when 'user', 'group' @params[:email_address] when 'domain' @params[:domain] end else case @api_permission.type when 'user', 'group' @api_permission.email_address when 'domain' @api_permission.domain end end end |
#with_link ⇒ Object Also known as: with_key
If true
, the file is shared only with people who know the link. Only used for type “anyone”.
106 107 108 |
# File 'lib/google_drive/acl_entry.rb', line 106 def with_link allow_file_discovery == false end |