NAME

Net::Google::DocumentsList::ACL - Access Control List object for Google Documents List Data API

SYNOPSIS

  use Net::Google::DocumentsList;

  my $client = Net::Google::DocumentsList->new(
    username => 'myname@gmail.com',
    password => 'p4$$w0rd'
  );

  # taking one document
  my $doc = $client->item;

  # getting acls
  my @acls = $doc->acls;

  for my $acl (@acls) {
      # checking acl
      if (
          $acl->role eq 'writer'
          && $acl->scope->{type} eq 'user'
          && $acl->scope->{value} eq 'foo.bar@gmail.com'
      ) {
          # updating acl
          $acl->role('reader');
          $acl->scope(
            {
                type => 'user',
                value => 'someone.else@gmail.com',
            }
          );

          # deleting acl
          $acl->delete;
      }
  }

  # adding acl
  $doc->add_acl(
    {
        role => 'reader',
        scope => {
            type => 'user',
            value => 'foo.bar@gmail.com',
        }
    }
  );

  # don't send email notification
  $doc->add_acl(
    {
        role => 'writer',
        scope => {
            type => 'user',
            value => 'hoge.fuga@gmail.com',
        },
        send_notification_emails => 'false',
    }
  );

  # adding acl with authorization keys
  # users who knows the key can write the doc
  my $acl = $doc->add_acl(
    {
        role => 'writer',
        scope => {
            type => 'default',
        },
        withKey => 1,
    }
  );
  say $acl->withKey; # this will show the key, and google (not you) makes the key

DESCRIPTION

This module represents Access Control List object for Google Documents List Data API.

METHODS

add_acl ( implemented in Net::Google::DocumentsList::Item object )

adds new ACL to document or folder.

  $doc->add_acl(
    {
        role => 'reader',
        scope => {
            type => 'user',
            value => 'foo.bar@gmail.com',
        }
    }
  );

delete

delete the acl from attached document or folder.

ATTRIBUTES

role

scope

hashref having 'type' and 'value' keys.

see http://code.google.com/intl/en/apis/documents/docs/3.0/developers_guide_protocol.html#AccessControlLists for details.

AUTHOR

Noubo Danjou <danjou@soffritto.org>

SEE ALSO

XML::Atom

Net::Google::AuthSub

Net::Google::DataAPI

Net::Google::DocumentsList::Role::HasItems

http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.