ó
è?F[c           @   s  d  d l  m Z d  d l m Z d Z d Z d Z d Z d Z d Z	 d	 Z
 d
 Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d d d d d d d g Z d d d g Z d  e f d! „  ƒ  YZ d
 e f d" „  ƒ  YZ d	 e f d# „  ƒ  YZ d e f d$ „  ƒ  YZ d% S(&   iÿÿÿÿ(   t   User(   t   InvalidAclErrort   AccessControlListt   AllAuthenticatedUserst   AllUserst   DisplayNamet   Domaint   EmailAddresst   Entryt   Entriest   GroupByDomaint   GroupByEmailt	   GroupByIdt   IDt   Namet   Ownert
   Permissiont   Scopet   typet   UserByEmailt   UserByIdt   privates   public-reads   project-privates   public-read-writes   authenticated-reads   bucket-owner-reads   bucket-owner-full-controlt   READt   WRITEt   FULL_CONTROLt   ACLc           B   sk   e  Z d
 d  „ Z e d „  ƒ Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d	 „  Z RS(   c         C   s   | |  _  t |  ƒ |  _ d  S(   N(   t   parentR	   t   entries(   t   selfR   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyt   __init__9   s    	c         C   s   |  S(   N(    (   R   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyt   acl=   s    c         C   s{   t  |  d ƒ r( d |  j j ƒ  g } n	 d g } |  j } | rj x' | j D] } | j | j ƒ  ƒ qJ Wn  d d j | ƒ S(   Nt   owners   Owner:%st    s   <%s>s   , (   t   hasattrR   t   __repr__R   t
   entry_listt   appendt   join(   R   t   entries_reprt   acl_entriest   e(    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR"   A   s    		c         C   s2   t  d t d | d | ƒ } |  j j j | ƒ d  S(   NR   t   email_addresst
   permission(   R   t   USER_BY_EMAILR   R#   R$   (   R   R*   R)   t   entry(    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyt   add_email_grantO   s    	c         C   s2   t  d | d t d | ƒ } |  j j j | ƒ d  S(   NR*   R   t   id(   R   t
   USER_BY_IDR   R#   R$   (   R   R*   t   user_idR,   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyt   add_user_grantV   s    c         C   s2   t  d t d | d | ƒ } |  j j j | ƒ d  S(   NR   R)   R*   (   R   t   GROUP_BY_EMAILR   R#   R$   (   R   R*   R)   R,   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyt   add_group_email_grantZ   s    	c         C   s2   t  d t d | d | ƒ } |  j j j | ƒ d  S(   NR   R.   R*   (   R   t   GROUP_BY_IDR   R#   R$   (   R   R*   t   group_idR,   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyt   add_group_grant_   s    c         C   sd   | j  ƒ  t j  ƒ  k r. t |  ƒ |  _ |  j S| j  ƒ  t j  ƒ  k r\ t |  ƒ |  _ |  j Sd  Sd  S(   N(   t   lowert   OWNERR    R   t   ENTRIESR	   R   t   None(   R   t   namet   attrst
   connection(    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyt   startElementc   s    c         C   sJ   | j  ƒ  t j  ƒ  k r n+ | j  ƒ  t j  ƒ  k r6 n t |  | | ƒ d  S(   N(   R7   R8   R9   t   setattr(   R   R;   t   valueR=   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyt
   endElementm   s
    c         C   sc   d t  } t |  d ƒ r/ | |  j j ƒ  7} n  |  j } | rQ | | j ƒ  7} n  | d t  7} | S(   Ns   <%s>R   s   </%s>(   t   ACCESS_CONTROL_LISTR!   R   t   to_xmlR   (   R   t   sR'   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyRC   u   s    
	N(   t   __name__t
   __module__R:   R   t   propertyR   R"   R-   R1   R3   R6   R>   RA   RC   (    (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR   7   s   						
	c           B   s8   e  Z d d  „ Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   | |  _  g  |  _ d  S(   N(   R   R#   (   R   R   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR   ƒ   s    	c         C   s>   g  } x$ |  j  D] } | j | j ƒ  ƒ q Wd d j | ƒ S(   Ns   <Entries: %s>s   , (   R#   R$   R"   R%   (   R   R&   R(   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR"   ‰   s    c         C   s@   | j  ƒ  t j  ƒ  k r8 t |  ƒ } |  j j | ƒ | Sd  Sd  S(   N(   R7   t   ENTRYR   R#   R$   R:   (   R   R;   R<   R=   R,   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR>      s
    c         C   s/   | j  ƒ  t j  ƒ  k r n t |  | | ƒ d  S(   N(   R7   RH   R?   (   R   R;   R@   R=   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyRA   —   s    c         C   sM   |  j  s d Sd t } x! |  j  D] } | | j ƒ  7} q! W| d t 7} | S(   NR    s   <%s>s   </%s>(   R#   R9   RC   (   R   RD   R,   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyRC      s    	
N(   RE   RF   R:   R   R"   R>   RA   RC   (    (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR	      s
   			c           B   sJ   e  Z d d d d d d d d  „ Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s:   | s$ t  |  | | | | | ƒ } n  | |  _ | |  _ d  S(   N(   R   t   scopeR*   (   R   RI   R   R.   R;   R)   t   domainR*   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR   ª   s    	c         C   s    d |  j  j ƒ  |  j j ƒ  f S(   Ns   <%s: %s>(   RI   R"   R*   (   R   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR"   ±   s    c         C   s}   | j  ƒ  t j  ƒ  k rZ t | k r= t d t t f ƒ ‚ n  t |  | t ƒ |  _ |  j S| j  ƒ  t j  ƒ  k ru n d  Sd  S(   Ns    Missing "%s" in "%s" part of ACL(   R7   t   SCOPEt   TYPER   R   RI   t
   PERMISSIONR:   (   R   R;   R<   R=   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR>   ´   s    c         C   s~   | j  ƒ  t j  ƒ  k r n_ | j  ƒ  t j  ƒ  k rj | j ƒ  } | t k r^ t d | ƒ ‚ n  | |  _ n t |  | | ƒ d  S(   Ns   Invalid Permission "%s"(   R7   RK   RM   t   stript   SupportedPermissionsR   R*   R?   (   R   R;   R@   R=   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyRA   Ï   s    c         C   sI   d t  } | |  j j ƒ  7} | d t |  j t f 7} | d t  7} | S(   Ns   <%s>s   <%s>%s</%s>s   </%s>(   RH   RI   RC   RM   R*   (   R   RD   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyRC   Ú   s
    
N(   RE   RF   R:   R   R"   R>   RA   RC   (    (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR   ¨   s   			c           B   s  e  Z i g  e j ƒ  6g  e j ƒ  6e j ƒ  g e j ƒ  6e j ƒ  e j ƒ  e	 j ƒ  g e
 j ƒ  6e j ƒ  e j ƒ  e	 j ƒ  g e j ƒ  6e j ƒ  e j ƒ  e	 j ƒ  g e j ƒ  6e j ƒ  e j ƒ  e	 j ƒ  g e j ƒ  6Z d d d d d d  „ Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sq   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ |  j j ƒ  |  j k rm t d t	 t
 |  j f ƒ ‚ n  d  S(   Ns   Invalid %s %s "%s" (   R   R   R;   R.   RJ   R)   R7   t   ALLOWED_SCOPE_TYPE_SUB_ELEMSR   RK   RL   (   R   R   R   R.   R;   R)   RJ   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR   ñ   s    						c         C   sk   d  } |  j r |  j } n* |  j r0 |  j } n |  j rE |  j } n  | r\ d |  j | f Sd |  j Sd  S(   Ns   <%s: %s>s   <%s>(   R:   R.   R)   RJ   R   (   R   t   named_entity(    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR"   ı   s    			c         C   sH   | j  ƒ  |  j |  j j  ƒ  k rD t d | t t |  j f ƒ ‚ n  d  S(   Ns'   Element "%s" not allowed in %s %s "%s" (   R7   RP   R   R   RK   RL   R:   (   R   R;   R<   R=   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR>   
  s
    	c         C   s°   | j  ƒ  } | j ƒ  t j ƒ  k r0 | |  _ n| | j ƒ  t j ƒ  k rT | |  _ nX | j ƒ  t j ƒ  k rx | |  _ n4 | j ƒ  t j ƒ  k rœ | |  _	 n t
 |  | | ƒ d  S(   N(   RN   R7   t   DOMAINRJ   t   EMAIL_ADDRESSR)   R   R.   t   NAMER;   R?   (   R   R;   R@   R=   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyRA     s    c         C   sš  d t  |  j f } |  j j ƒ  t j ƒ  k sˆ|  j j ƒ  t j ƒ  k rL n<|  j j ƒ  t j ƒ  k r„ | d t |  j t f 7} n|  j j ƒ  t j ƒ  k sº |  j j ƒ  t	 j ƒ  k rı | d t
 |  j t
 f 7} |  j rˆ| d t |  j t f 7} qˆn‹ |  j j ƒ  t j ƒ  k s3|  j j ƒ  t j ƒ  k rv| d t |  j t f 7} |  j rˆ| d t |  j t f 7} qˆn t d |  j ƒ ‚ | d t  7} | S(   Ns   <%s type="%s">s   <%s>%s</%s>s   Invalid scope type "%s" s   </%s>(   RK   R   R7   t   ALL_AUTHENTICATED_USERSt	   ALL_USERSt   GROUP_BY_DOMAINRR   RJ   R2   R+   RS   R)   R;   RT   R4   R/   R   R.   R   (   R   RD   (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyRC     s(    	 	 N(   RE   RF   RU   R7   RV   RR   RW   t   DISPLAY_NAMERS   RT   R2   R   R4   R+   R/   RP   R:   R   R"   R>   RA   RC   (    (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyR   â   s   (((+				N(   t   boto.gs.userR    t   boto.exceptionR   RB   RU   RV   RX   RR   RS   RH   R9   RW   R2   R4   R   RT   R8   RM   RK   RL   R+   R/   t   CannedACLStringsRO   t   objectR   R	   R   R   (    (    (    s*   lib/python2.7/site-packages/boto/gs/acl.pyt   <module>   s8   	J':