o
    �õ±jN  ã                   @   s^   d dl T G dd„ deƒZe e¡ZG dd„ deƒZe e¡ZdZdd„ Z	dd	d
„Z
dd„ ZdS )é    )Ú*c                   @   ó   e Zd ZdefgZdS )ÚLOCALGROUP_USERS_INFO_0Úlgrui0_nameN©Ú__name__Ú
__module__Ú__qualname__ÚLPWSTRÚ_fields_© r   r   úŒ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/winacl/functions/netapi32.pyr      ó    ÿr   c                   @   r   )ÚUSER_INFO_0Ú
usri0_nameNr   r   r   r   r   r   	   r   r   é   c                 C   s(   t jj}tg|_t|_t|_|| ƒ d S )N)	ÚwindllÚnetapi32ÚNetApiBufferFreeÚHLOCALÚargtypesÚDWORDÚrestypeÚRaiseIfNotErrorSuccessÚerrcheck)ÚpBufferÚ_NetApiBufferFreer   r   r   r      s
   r   c                 C   sò   t jj}ttttttttg|_t|_t	|_
g }d}| dur"t | ¡}t |¡}d}t tdƒ¡}d}	tdƒ}
tdƒ}|||||t|ƒ|	t |
¡t |¡ƒ t|
j }t t|jƒt |¡¡}td|
jƒD ]}| |j| j¡ qdtt|jƒƒ |S )zS
	flags can be 0 or LG_INCLUDE_INDIRECT to include all indirect group memberships
	Nr   éÿÿÿÿ)r   r   ÚNetUserGetLocalGroupsr
   r   ÚPVOIDÚLPDWORDr   r   r   r   ÚctypesÚcreate_unicode_bufferÚpointerÚbyrefr   ÚvalueÚcastÚ	addressofÚcontentsÚPOINTERÚrangeÚappendr   r   )Úserver_nameÚ	user_nameÚflagsÚ_NetUserGetLocalGroupsÚmembership_goupsÚpserver_nameÚ
puser_nameÚlevelÚbufptrÚ
prefmaxlenÚentriesreadÚtotalentriesÚelemsÚresÚir   r   r   r   )   s<   

ø
r   c                 C   sš   t jj}ttttg|_t|_t|_	d}d }| d urt
 | ¡}d }|d ur)t
 |¡}t
 tdƒ¡}|||||ƒ t
 t|jƒt¡}t|ƒ tt|jƒƒ d S )Nr   )r   r   ÚNetUserGetInfor
   r   r    r   r   r   r   r!   r"   r#   r&   r'   r(   ÚPUSER_INFO_0Úprintr   )r,   r-   Ú_NetUserGetInfor3   r1   r2   r4   r9   r   r   r   r;   \   s*   

ür;   N)r   )Úwinacl.functions.definesÚ	Structurer   r!   r)   ÚPLOCALGROUP_USERS_INFO_0r   r<   ÚLG_INCLUDE_INDIRECTr   r   r;   r   r   r   r   Ú<module>   s    


3