o ckF[T@sHddlmZgdZGdddeZGdddeZGdddeZd S) )User)privatez public-readzpublic-read-writezauthenticated-readzbucket-owner-readzbucket-owner-full-controlzlog-delivery-writec@s6eZdZd ddZddZddZdd Zd d ZdS) PolicyNcCs||_d|_d|_dSN)parent namespaceacl)selfrr -/usr/lib/python3/dist-packages/boto/s3/acl.py__init__!s zPolicy.__init__cCsg}|jjD]4}|j|jjkr|d|j|jfq|jdkr$|j}n |jdkr-|j}n|j }|d||jfqdd |S)Nz%s (owner) = %s CanonicalUserGroupz%s = %sz z, ) rgrantsidownerappend display_name permissiontypeuri email_addressjoin)r rgur r r __repr__&s   zPolicy.__repr__cCsN|dkr |dd|_dS|dkrt||_|jS|dkr%t||_|jSdS)NAccessControlPolicyxmlnsOwnerAccessControlList)getrrrACLrr nameattrs connectionr r r startElement5s  zPolicy.startElementcCs(|dkrdS|dkr dSt|||dS)Nrrsetattrr r#valuer%r r r endElementBs zPolicy.endElementcCsD|jdur d|j}nd}||j7}||j7}|d7}|S)Nz!zz)rformatrto_xmlrr sr r r r-Js z Policy.to_xmlr)__name__ __module__ __qualname__r rr&r+r-r r r r rs   rc@sHeZdZdddZddZddZddd Zd d Zd d ZddZ dS)r!NcCs||_g|_dSr)policyr)r r3r r r r Ws z ACL.__init__cCs|j|dSr)rr)r grantr r r add_grant[sz ACL.add_grantcCst|d|d}|j|dS)NAmazonCustomerByEmail)rrrGrantrr)r rrr4r r r add_email_grant^szACL.add_email_grantcCs t|d||d}|j|dS)Nr )rrrrr7)r ruser_idrr4r r r add_user_grantcszACL.add_user_grantcCs&|dkr|jt||jdSdS)Nr8)rrr8r"r r r r&gs zACL.startElementcCs|dkrdSt|||dS)Nr8r'r)r r r r+nszACL.endElementcCs(d}|jD]}||7}q|d7}|S)Nzz)rr-)r r/r4r r r r-ts  z ACL.to_xmlr) r0r1r2r r5r9r;r&r+r-r r r r r!Us   r!c@s6eZdZdZ  d ddZddZddZd d ZdS) r8z5xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"NcCs(||_||_||_||_||_||_dSr)rrrrrr)r rrrrrrr r r r s  zGrant.__init__cCs|dkr |d|_dS)NGranteezxsi:type)rr"r r r r&s zGrant.startElementcCsv|dkr ||_dS|dkr||_dS|dkr||_dS|dkr$||_dS|dkr*dS|dkr3||_dSt|||dS)NID DisplayNameURI EmailAddressr= Permission)rrrrrr(r)r r r r+s     zGrant.endElementcCsd}|d|j|jf7}|jdkr |d|j7}|d|j7}n|jdkr-|d|j7}n|d|j7}|d 7}|d |j7}|d 7}|S) Nzzr z %sz%srz %sz%sz z%sz) NameSpacerrrrrrr.r r r r-s  z Grant.to_xml)NNNNNN)r0r1r2rCr r&r+r-r r r r r8|s   r8N) boto.s3.userrCannedACLStringsobjectrr!r8r r r r s 6'