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rd}
d|
f  S q?|	du r|| @ }
|
dkrd|
fS d|
fS d}
|dkrd|
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    &