o
    �õ±j  ã                   @   sv   d dl mZmZ d dlmZ d dlmZ dZdZdZ	dZ
dZd	Zd
d„ Zdd„ Zg fdep.ededee fdd„ZdS )é    )ÚACETypeÚAceFlags)ÚSID)ÚListi   i   i   i   i   i   c                 C   s   |D ]	}| |kr dS qdS ©NTF© )ÚsidÚ
sid_groupsÚcsidr   r   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/winacl/functions/rights_calc.pyÚgroup_lookup   s
   ÿr   c                 C   s    |j D ]
}|j| kr dS qdS r   )ÚacesÚSid)r   ÚdaclÚacer   r   r   Úsid_in_dacl   s
   

ÿr   r   Ú
req_accessr	   c                 C   s’  | j }| j}|}d}d}d}	d}
t| j|ƒdu r2t| j|ƒdu r2|t M }|t M }|
tO }
|
tO }
t|t	@ ƒdu r<d}	|j
D ]f}ttj|j@ ƒdu rLq?|jtjkrwt|j|ƒdu rv|	du ri||jO }|
|jO }
q?||j M }|
||j@ O }
q?|jtjkr¥|jdkr„ n"t|j|ƒdu r¥|	du r–||jO }q?||j@ dkr¥d}
d|
f  S q?|	du r»|| @ }
|
dkr·d|
fS d|
fS d}
|dkrÅd|
fS d|
fS )Nr   FT)ÚDaclÚSaclr   ÚOwnerr   ÚREAD_CONTROLÚ
WRITE_DACLÚWRITE_OWNERÚboolÚMAXIMUM_ALLOWEDr   r   ÚINHERIT_ONLY_ACEÚAceTyper   ÚACCESS_ALLOWED_ACE_TYPEr   ÚMaskÚACCESS_DENIED_ACE_TYPE)Úsdr   r   r	   r   ÚsaclÚremainging_accessÚallowed_accessÚdenied_accessÚmax_allowed_modeÚgranted_accessr   r   r   r   ÚEvaluateSidAgainstDescriptor   sZ   &



€
€
r'   N)Úwinacl.dtyp.acer   r   Úwinacl.dtyp.sidr   Útypingr   ÚSYNCHRONIZEr   r   r   ÚDELETEr   r   r   ÚstrÚintr'   r   r   r   r   Ú<module>   s    &