HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //lib/python3.6/site-packages/S3/__pycache__/ACL.cpython-36.pyc
3

�9pe�!�@sddlmZmZddlZddlmZmZmZddlm	Z	yddl
jjZ
Wnek
rfddljZ
YnXejdkZGdd�de�ZGd	d
�d
e�ZGdd�de�ZGd
d�de�Zedk�r
dZee�Zedej��ej�edej��ej�edej��ee�dS)�)�absolute_import�print_functionN�)�getTreeFromXml�encode_to_s3�decode_from_s3)�deunicodise�c@sDeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dS)�Granteez/http://acs.amazonaws.com/groups/global/AllUsersz.http://acs.amazonaws.com/groups/s3/LogDeliverycCs"d|_d|_d|_d|_d|_dS)N�)�xsi_type�tag�name�display_name�
permission)�self�r�/usr/lib/python3.6/ACL.py�__init__s
zGrantee.__init__cCstd|j|j|jd��S)Nz0Grantee("%(tag)s", "%(name)s", "%(permission)s"))r
rr)�reprr
rr)rrrr�__repr__%szGrantee.__repr__cCs|jdko|jtjkS)N�URI)r
rr
�
ALL_USERS_URI)rrrr�
isAllUsers,szGrantee.isAllUserscCs|j�o|jdkp|jdkS)N�READ�FULL_CONTROL)rr)rrrr�
isAnonRead/szGrantee.isAnonReadcCs|j�o|jdkp|jdkS)NZWRITEr)rr)rrrr�isAnonWrite2szGrantee.isAnonWritecCsNtjd�}tj|dd|jd��}tj||j�}|j|_tj|d�}|j|_|S)NZGrantr
z)http://www.w3.org/2001/XMLSchema-instance)z	xmlns:xsizxsi:type�
Permission)�ETZElementZ
SubElementrr
r�textr)r�el�granteerrrrr�
getElement5s
zGrantee.getElementN)�__name__�
__module__�__qualname__r�LOG_DELIVERY_URIrrrrrr#rrrrr
sr
c@seZdZdd�ZdS)�GranteeAnonReadcCs(tj|�d|_d|_tj|_d|_dS)N�Grouprr)r
rrr
rrr)rrrrrBs

zGranteeAnonRead.__init__N)r$r%r&rrrrrr(Asr(c@seZdZdd�ZdS)�GranteeLogDeliverycCs(tj|�d|_d|_tj|_||_dS)z=
        permission must be either READ_ACP or WRITE
        r)rN)r
rrr
r'rr)rrrrrrJs

zGranteeLogDelivery.__init__N)r$r%r&rrrrrr*Isr*c@s�eZdZdZd%dd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�ZdS)&�ACLsj<AccessControlPolicy><Owner><ID></ID></Owner><AccessControlList></AccessControlList></AccessControlPolicy>NcCs@|s
tj}g|_d|_d|_tt|��}|j|�|j|�dS)Nr)	r+�	EMPTY_ACL�grantees�owner_id�
owner_nickrr�
parseOwner�parseGrants)r�xml�treerrrrWs
zACL.__init__cCs|jd�|_|jd�|_dS)Nz.//Owner//IDz.//Owner//DisplayName)Zfindtextr.r/)rr3rrrr0cszACL.parseOwnercCs�xz|jd�D]l}t�}|jd�}|jd|_|jd�j|_x0|D](}|jdkrX|j|_q@|j|_|j|_	q@W|j
j|�qWdS)Nz.//Grantz
.//Granteez/{http://www.w3.org/2001/XMLSchema-instance}typerZDisplayName)�findallr
�find�attribrr rr
rrr-�append)rr3�grantr"�gr!rrrr1gs



zACL.parseGrantscCsLg}xB|jD]8}|jr|j}n|j�r,d}n|j}|j||jd��qW|S)Nz*anon*)r"r)r-rrrr7r)r�aclr"�userrrr�getGrantListuszACL.getGrantListcCs|j|jd�S)N)�idZnick)r.r/)rrrr�getOwner�szACL.getOwnercCs x|jD]}|j�rdSqWdS)NTF)r-r)rr"rrrr�szACL.isAnonReadcCs x|jD]}|j�rdSqWdS)NTF)r-r)rr"rrrr�szACL.isAnonWritecCs|j�s|jt��dS)N)r�
appendGranteer()rrrr�
grantAnonRead�szACL.grantAnonReadcCsdd�|jD�|_dS)NcSsg|]}|j�s|�qSr)r)�.0r9rrr�
<listcomp>�sz&ACL.revokeAnonRead.<locals>.<listcomp>)r-)rrrr�revokeAnonRead�szACL.revokeAnonReadcCsdd�|jD�|_dS)NcSsg|]}|j�s|�qSr)r)rAr9rrrrB�sz'ACL.revokeAnonWrite.<locals>.<listcomp>)r-)rrrr�revokeAnonWrite�szACL.revokeAnonWritecCs|jj|�dS)N)r-r7)rr"rrrr?�szACL.appendGranteecCsR|j�}|j�}x<|jD]2}|jj�|kr|jdkr8dS|jj�|krdSqWdS)NrTF)�lower�upperr-rr)rrrr"rrr�hasGrant�s
zACL.hasGrantcCs�|j||�rdS|j�}d|kr$d}d|kr8|j|d�t�}||_||_d|krl|jj�|_d|_d|_n.d|kr�d|_d|_n|jj�|_d	|_d
|_|j	|�dS)N�ALLr�@ZAmazonCustomerByEmailZEmailAddressz http://acs.amazonaws.com/groups/r)rZ
CanonicalUserZID)
rGrF�revoker
rrrErr
r?)rrrr"rrrr8�s*z	ACL.grantcsL�j���j��d�kr0�fdd�|jD�|_n��fdd�|jD�|_dS)NrHcs6g|].}|jj��kp,|jdk	o,|jj��ks|�qS)N)rrEr)rAr9)rrrrB�szACL.revoke.<locals>.<listcomp>csDg|]<}|jdk	r |jj��ks.|jj��ko:|jj��ks|�qS)N)rrErrrF)rAr9)rrrrrB�s()rErFr-)rrrr)rrrrJ�s
z
ACL.revokecCsRttj�}d|jd<|jd�}|j|_|jd�}x|jD]}|j|j	��q8W|S)Nz'http://s3.amazonaws.com/doc/2006-03-01/Zxmlnsz.//Owner//IDz.//AccessControlList)
rr+r,r6r5r.r r-r7r#)rr3�ownerr:r"rrr�get_printable_tree�s



zACL.get_printable_treecCsttj|j���S)N)rr�tostringrL)rrrr�__unicode__�szACL.__unicode__cCs(trtj|j�dd�Stj|j��SdS)NZunicode)�encoding)�PY3rrMrL)rrrr�__str__�szACL.__str__)N)r$r%r&r,rr0r1r<r>rrr@rCrDr?rGr8rJrLrNrQrrrrr+Ts$



r+�__main__s<?xml version="1.0" encoding="UTF-8"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
    <ID>12345678901234567890</ID>
    <DisplayName>owner-nickname</DisplayName>
</Owner>
<AccessControlList>
    <Grant>
        <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
            <ID>12345678901234567890</ID>
            <DisplayName>owner-nickname</DisplayName>
        </Grantee>
        <Permission>FULL_CONTROL</Permission>
    </Grant>
    <Grant>
        <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group">
            <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
        </Grantee>
        <Permission>READ</Permission>
    </Grant>
</AccessControlList>
</AccessControlPolicy>
    zGrants:)r	r)Z
__future__rr�sysZ	BaseUtilsrrrZUtilsrZxml.etree.ElementTreeZetreeZElementTreer�ImportErrorZelementtree.ElementTree�version_inforP�objectr
r(r*r+r$r2r:�printr<rCr@rrrr�<module>
s,
'