ó
č?F[c           @   sq   d  d l  m Z d d d d d d d g Z d	 e f d
     YZ d e f d     YZ d e f d     YZ d S(   iĸĸĸĸ(   t   Usert   privates   public-reads   public-read-writes   authenticated-reads   bucket-owner-reads   bucket-owner-full-controls   log-delivery-writet   Policyc           B   s8   e  Z d d   Z d   Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  |  _ d  |  _ d  S(   N(   t   parentt   Nonet	   namespacet   acl(   t   selfR   (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyt   __init__!   s    		c         C   sž   g  } xĒ |  j  j D] } | j |  j j k rN | j d | j | j f  q | j d k ri | j } n$ | j d k r | j } n	 | j	 } | j d | | j f  q Wd d j
 |  S(   Ns   %s (owner) = %st   CanonicalUsert   Groups   %s = %ss   <Policy: %s>s   , (   R   t   grantst   idt   ownert   appendt   display_namet
   permissiont   typet   urit   email_addresst   join(   R   R   t   gt   u(    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyt   __repr__&   s     	c         C   sq   | d k r% | j  d d   |  _ d  S| d k rG t |   |  _ |  j S| d k ri t |   |  _ |  j Sd  Sd  S(   Nt   AccessControlPolicyt   xmlnst   Ownert   AccessControlList(   t   getR   R   R    R   t   ACLR   (   R   t   namet   attrst
   connection(    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyt   startElement5   s    c         C   s2   | d k r n | d k r n t  |  | |  d  S(   NR   R   (   t   setattr(   R   R   t   valueR    (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyt
   endElementB   s
    c         C   s^   |  j  d  k	 r$ d j |  j   } n d } | |  j j   7} | |  j j   7} | d 7} | S(   Ns!   <AccessControlPolicy xmlns="{0}">s   <AccessControlPolicy>s   </AccessControlPolicy>(   R   R   t   formatR   t   to_xmlR   (   R   t   s(    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyR&   J   s    
N(   t   __name__t
   __module__R   R   R   R!   R$   R&   (    (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyR      s
   			R   c           B   sM   e  Z d d   Z d   Z d   Z d d  Z d   Z d   Z d   Z	 RS(   c         C   s   | |  _  g  |  _ d  S(   N(   t   policyR   (   R   R*   (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyR   W   s    	c         C   s   |  j  j |  d  S(   N(   R   R   (   R   t   grant(    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyt	   add_grant[   s    c         C   s/   t  d | d d d |  } |  j j |  d  S(   NR   R   t   AmazonCustomerByEmailR   (   t   GrantR   R   (   R   R   R   R+   (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyt   add_email_grant^   s    	c      	   C   s5   t  d | d d d | d |  } |  j j |  d  S(   NR   R   R	   R   R   (   R.   R   R   (   R   R   t   user_idR   R+   (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyt   add_user_grantc   s    !c         C   s5   | d k r- |  j  j t |    |  j  d Sd  Sd  S(   NR.   iĸĸĸĸ(   R   R   R.   R   (   R   R   R   R    (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyR!   g   s    c         C   s#   | d k r n t  |  | |  d  S(   NR.   (   R"   (   R   R   R#   R    (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyR$   n   s    c         C   s8   d } x! |  j  D] } | | j   7} q W| d 7} | S(   Ns   <AccessControlList>s   </AccessControlList>(   R   R&   (   R   R'   R+   (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyR&   t   s
    
N(
   R(   R)   R   R   R,   R/   R1   R!   R$   R&   (    (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyR   U   s   				R.   c           B   sD   e  Z d  Z d d d d d d d  Z d   Z d   Z d   Z RS(   s5   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"c         C   s:   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ d  S(   N(   R   R   R   R   R   R   (   R   R   R   R   R   R   R   (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyR      s    					c         C   s    | d k r | d |  _  n  d  S(   Nt   Grantees   xsi:type(   R   R   (   R   R   R   R    (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyR!      s    c         C   s   | d k r | |  _  n | d k r0 | |  _ ng | d k rH | |  _ nO | d k r` | |  _ n7 | d k ro n( | d k r | |  _ n t |  | |  d  S(   Nt   IDt   DisplayNamet   URIt   EmailAddressR2   t
   Permission(   R   R   R   R   R   R"   (   R   R   R#   R    (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyR$      s    c         C   są   d } | d |  j  |  j f 7} |  j d k rT | d |  j 7} | d |  j 7} n4 |  j d k rw | d |  j 7} n | d |  j 7} | d	 7} | d
 |  j 7} | d 7} | S(   Ns   <Grant>s   <Grantee %s xsi:type="%s">R	   s   <ID>%s</ID>s   <DisplayName>%s</DisplayName>R
   s   <URI>%s</URI>s   <EmailAddress>%s</EmailAddress>s
   </Grantee>s   <Permission>%s</Permission>s   </Grant>(   t	   NameSpaceR   R   R   R   R   R   (   R   R'   (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyR&      s    

N(   R(   R)   R8   R   R   R!   R$   R&   (    (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyR.   |   s   			N(   t   boto.s3.userR    t   CannedACLStringst   objectR   R   R.   (    (    (    s*   lib/python2.7/site-packages/boto/s3/acl.pyt   <module>   s   	6'