a
    ¡Öa>B  ã                   @   s¼   d dl mZ d dlZd dlmZmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlZd dlmZ d dlmZ d dlZd d	lmZ d
Ze dd¡ZdZe dd¡ZdZdZG dd„ deƒZdS )é    )Úprint_functionN)ÚMSG_GROUP_LOGÚDSDB_GROUP_EVENT_NAME)Ú%EVT_ID_USER_ADDED_TO_GLOBAL_SEC_GROUPÚ)EVT_ID_USER_REMOVED_FROM_GLOBAL_SEC_GROUP)ÚSamDB)Úsystem_session)ÚAuditLogTestBase)Údelete_force)ÚFLAG_MOD_REPLACEZgrpadttstuser01é    Zgrpadttstuser02zgroup-audit-01zgroup-audit-02c                       s8   e Zd Z‡ fdd„Z‡ fdd„Zdd„ Zdd„ Z‡  ZS )	ÚGroupAuditTestsc                    s   t | _t| _tt| ƒ ¡  tjd | _	dtjd  }t
|tƒ |  ¡ |  ¡ d| _tjd | _| j ¡ | _| j ¡ }| j d¡ |  | jj|¡ | j ¡ }| j d¡ | j ¡ | _|  | jj|¡ | j dt d | j d	ttd
œ¡ | j t¡ | j t¡ d S )NZ	SERVER_IPz	ldap://%sZSERVER)ZurlZsession_infoZcredentialsZlpZ	000000001Ú0úcn=ú
,cn=users,Úuser)ÚdnZobjectclassZsAMAccountNameZuserPassword)r   Zmessage_typer   Z
event_typeÚsuperr   ÚsetUpÚosÚenvironZ	server_ipr   r   Zget_credentialsZget_loadparmÚldbZserverZ	domain_dnÚbase_dnZget_dsheuristicsZset_dsheuristicsZ
addCleanupZget_minPwdAgeZset_minPwdAgeÚaddÚ	USER_NAMEÚ	USER_PASSZnewgroupÚGROUP_NAME_01ÚGROUP_NAME_02)ÚselfZhostZdsheuristicsZ	minPwdAge©Ú	__class__© ú9/usr/lib/python3/dist-packages/samba/tests/group_audit.pyr   0   s6    ý

üzGroupAuditTests.setUpc                    sD   t t| ƒ ¡  t| jdt d | j ƒ | j t¡ | j t	¡ d S )Nr   r   )
r   r   ÚtearDownr
   r   r   r   Zdeletegroupr   r   )r   r   r!   r"   r#   _   s    zGroupAuditTests.tearDownc                 C   s¼  |   d¡}tdt|ƒ ƒ |  dt|ƒd¡ |d d }|  d|d ¡ dt d	 | j }d
| j }|  | ¡ |d  ¡ ¡ |  | ¡ |d  ¡ ¡ |  |d | j	¡ |  |  
|d ¡¡ |  ¡ }|  ||d ¡ |  ¡ }|  |d¡ |d d }|  d|d ¡ dt d	 | j }d
| j }|  | ¡ |d  ¡ ¡ |  | ¡ |d  ¡ ¡ |  |d | j	¡ |  |  
|d ¡¡ |  ¡ }|  ||d ¡ |  t|d ¡ |  ¡  | j ttg¡ |   d¡}tdt|ƒ ƒ |  dt|ƒd¡ |d d }|  d|d ¡ dt d	 | j }dt d	 | j }|  | ¡ |d  ¡ ¡ |  | ¡ |d  ¡ ¡ |  |d | j	¡ |  |  
|d ¡¡ |  ¡ }|  ||d ¡ |  ¡ }|  |d¡ |  ¡  | j ttg¡ |   d¡}tdt|ƒ ƒ |  dt|ƒd¡ |d d }|  d|d ¡ dt d	 | j }dt d	 | j }|  | ¡ |d  ¡ ¡ |  | ¡ |d  ¡ ¡ |  |d | j	¡ |  |  
|d ¡¡ |  ¡ }|  ||d ¡ |  ¡ }|  |d¡ |  ¡  | jjttgdd |   d¡}tdt|ƒ ƒ |  dt|ƒd¡ |d d }|  d|d ¡ dt d	 | j }dt d	 | j }|  | ¡ |d  ¡ ¡ |  | ¡ |d  ¡ ¡ |  |d | j	¡ |  |  
|d ¡¡ |  ¡ }|  ||d ¡ |  ¡ }|  |d¡ |  ¡  | j ttg¡ |   d¡}tdt|ƒ ƒ |  dt|ƒd¡ |d d }|  d|d ¡ dt d	 | j }dt d	 | j }|  | ¡ |d  ¡ ¡ |  | ¡ |d  ¡ ¡ |  |d | j	¡ |  |  
|d ¡¡ |  ¡ }|  ||d ¡ |  ¡ }|  |d¡ d S )Né   úReceived %d messagesú/Did not receive the expected number of messagesr   ÚgroupChangeÚPrimaryGroupÚactionr   r   úcn=domain users,cn=users,r   ÚgroupÚremoteAddressÚ	sessionIdÚLDAPé   ÚAddedÚeventIdF)Zadd_members_operationÚRemoved)ÚwaitForMessagesÚprintÚlenÚassertEqualr   r   Ú
assertTrueÚlowerÚassertRegexpMatchesr,   Úis_guidÚget_sessionÚget_service_descriptionr   ÚdiscardMessagesr   Úadd_remove_group_membersr   r   )r   ÚmessagesÚauditÚuser_dnÚgroup_dnÚ
session_idÚservice_descriptionr!   r!   r"   Ú$test_add_and_remove_users_from_groupe   sþ    
þ

ÿ

ÿÿ
þ
ÿ
þ
ÿý
þ
ÿ
þ
ÿz4GroupAuditTests.test_add_and_remove_users_from_groupc           
      C   sÄ  |   d¡}tdt|ƒ ƒ |  dt|ƒd¡ |d d }|  d|d ¡ dt d	 | j }d
| j }|  | ¡ |d  ¡ ¡ |  | ¡ |d  ¡ ¡ |  |d | j	¡ |  |  
|d ¡¡ |  ¡ }|  ||d ¡ |  ¡ }|  |d¡ |d d }|  d|d ¡ dt d	 | j }d
| j }|  | ¡ |d  ¡ ¡ |  | ¡ |d  ¡ ¡ |  |d | j	¡ |  |  
|d ¡¡ |  ¡ }|  ||d ¡ |  t|d ¡ |  ¡  | j ttg¡ |   d¡}tdt|ƒ ƒ |  dt|ƒd¡ |d d }|  d|d ¡ dt d	 | j }dt d	 | j }|  | ¡ |d  ¡ ¡ |  | ¡ |d  ¡ ¡ |  |d | j	¡ |  |  
|d ¡¡ |  ¡ }|  ||d ¡ |  ¡ }|  |d¡ |  t|d ¡ dt d	 | j }dt d	 | j }| jj|dgtjd}|d d }t ¡ }	t | j|¡|	_t |td¡|	d< |  ¡  | j |	¡ |   d¡}tdt|ƒ ƒ |  dt|ƒd¡ |d d }|  d|d ¡ dt d	 | j }dt d	 | j }|  | ¡ |d  ¡ ¡ |  | ¡ |d  ¡ ¡ |  |d | j	¡ |  |  
|d ¡¡ |  ¡ }|  ||d ¡ |  ¡ }|  |d¡ |  t|d ¡ |d d }|  d|d ¡ dt d	 | j }d
| j }|  | ¡ |d  ¡ ¡ |  | ¡ |d  ¡ ¡ |  |d | j	¡ |  |  
|d ¡¡ |  ¡ }|  ||d ¡ |  ¡ }|  |d¡ |  t|d ¡ |d d }|  d|d ¡ dt d	 | j }dt d	 | j }|  | ¡ |d  ¡ ¡ |  | ¡ |d  ¡ ¡ |  |d | j	¡ |  |  
|d ¡¡ |  ¡ }|  ||d ¡ |  ¡ }|  |d¡ d S )Nr$   r%   r&   r   r'   r(   r)   r   r   r*   r   r+   r,   r-   r.   r/   r0   r1   ZprimaryGroupToken)ÚbaseÚattrsZscopeZprimaryGroupIDé   r2   )r3   r4   r5   r6   r   r   r7   r8   r9   r,   r:   r;   r<   r   r=   r   r>   r   ÚsearchZ
SCOPE_BASEZMessageZDnr   ZMessageElementr   Zmodifyr   )
r   r?   r@   rA   rB   rC   rD   ÚresZgroup_idÚmr!   r!   r"   Útest_change_primary_group÷   s   
þ

ÿ

ÿÿ
þ
ÿÿÿý
þ
ÿÿ

ÿÿ
ÿz)GroupAuditTests.test_change_primary_group)Ú__name__Ú
__module__Ú__qualname__r   r#   rE   rL   Ú__classcell__r!   r!   r   r"   r   .   s
   / r   )Z
__future__r   Zsamba.testsZsambaZsamba.dcerpc.messagingr   r   Zsamba.dcerpc.windows_event_idsr   r   Zsamba.samdbr   Z
samba.authr   r   Zsamba.tests.audit_log_baser	   r
   r   r   r   Zgenerate_random_passwordr   ZSECOND_USER_NAMEZSECOND_USER_PASSr   r   r   r!   r!   r!   r"   Ú<module>   s"   