
    bB                         d 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j        dd          ZdZ ej        dd          ZdZdZ G d de          ZdS )z1Tests for the SamDb logging of password changes.
    N)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_REPLACEgrpadttstuser01    grpadttstuser02zgroup-audit-01zgroup-audit-02c                   4     e Zd Z fdZ fdZd Zd Z xZS )GroupAuditTestsc                 T   t           | _        t          | _        t	          t
          |                                            t          j        d         | _	        dt          j        d         z  }t          |t                      |                                 |                                           | _        t          j        d         | _        | j                                        | _        | j                                        }| j                            d           |                     | j        j        |           | j                                        }| j                            d           | j                                        | _        |                     | j        j        |           | j                            dt0          z   dz   | j        z   d	t0          t2          d
           | j                            t6                     | j                            t8                     d S )N	SERVER_IPz	ldap://%sSERVER)urlsession_infocredentialslp	0000000010cn=
,cn=users,user)dnobjectclasssAMAccountNameuserPassword)r   message_typer   
event_typesuperr   setUposenviron	server_ipr   r   get_credentialsget_loadparmldbserver	domain_dnbase_dnget_dsheuristicsset_dsheuristics
addCleanupget_minPwdAgeset_minPwdAgeadd	USER_NAME	USER_PASSnewgroupGROUP_NAME_01GROUP_NAME_02)selfhostdsheuristics	minPwdAge	__class__s       9/usr/lib/python3/dist-packages/samba/tests/group_audit.pyr$   zGroupAuditTests.setUp.   s   )/ot$$**,,,K0RZ11T&4&6&6%)%9%9%;%; --//1 1 1 j* x))++ x0022 	!!+... 	1<@@@ H**,,	 	s###x))++ 	.	::: 	)#l2T\A!'%	
 
 	 	 	 	-(((-(((((    c                 "   t          t          |                                            t          | j        dt
          z   dz   | j        z              | j                            t                     | j                            t                     d S )Nr   r   )
r#   r   tearDownr
   r*   r4   r-   deletegroupr7   r8   )r9   r=   s    r>   rA   zGroupAuditTests.tearDown]   st    ot$$--///TXuy0<?$,NOOO]+++]+++++r?   c                    |                      d          }t          dt          |          z             |                     dt          |          d           |d         d         }|                     d|d                    dt          z   d	z   | j        z   }d
| j        z   }|                     |                                |d                                                    |                     |                                |d                                                    |                     |d         | j	                   |                     | 
                    |d                              |                                 }|                     ||d                    |                                 }|                     |d           |d         d         }|                     d|d                    dt          z   d	z   | j        z   }d
| j        z   }|                     |                                |d                                                    |                     |                                |d                                                    |                     |d         | j	                   |                     | 
                    |d                              |                                 }|                     ||d                    |                     t          |d                    |                                  | j                            t"          t          g           |                      d          }t          dt          |          z             |                     dt          |          d           |d         d         }|                     d|d                    dt          z   d	z   | j        z   }dt"          z   d	z   | j        z   }|                     |                                |d                                                    |                     |                                |d                                                    |                     |d         | j	                   |                     | 
                    |d                              |                                 }|                     ||d                    |                                 }|                     |d           |                                  | j                            t$          t          g           |                      d          }t          dt          |          z             |                     dt          |          d           |d         d         }|                     d|d                    dt          z   d	z   | j        z   }dt$          z   d	z   | j        z   }|                     |                                |d                                                    |                     |                                |d                                                    |                     |d         | j	                   |                     | 
                    |d                              |                                 }|                     ||d                    |                                 }|                     |d           |                                  | j                            t"          t          gd           |                      d          }t          dt          |          z             |                     dt          |          d           |d         d         }|                     d|d                    dt          z   d	z   | j        z   }dt"          z   d	z   | j        z   }|                     |                                |d                                                    |                     |                                |d                                                    |                     |d         | j	                   |                     | 
                    |d                              |                                 }|                     ||d                    |                                 }|                     |d           |                                  | j                            t"          t          g           |                      d          }t          dt          |          z             |                     dt          |          d           |d         d         }|                     d|d                    dt          z   d	z   | j        z   }dt"          z   d	z   | j        z   }|                     |                                |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)add_members_operationRemoved)waitForMessagesprintlenassertEqualr4   r-   
assertTruelowerassertRegexpMatchesrL   is_guidget_sessionget_service_descriptionr   discardMessagesr*   add_remove_group_membersr7   r8   )r9   messagesaudituser_dngroup_dn
session_idservice_descriptions          r>   $test_add_and_remove_users_from_groupz4GroupAuditTests.test_add_and_remove_users_from_groupc   s6
   
 ''**$s8}}4555h--K	M 	M 	M M*x999)#l2T\A.=v)<)<)>)>???((%.*>*>*@*@AAA  !7!%!3	5 	5 	5U;%788999%%''
U;%7888"::<<,f555 M*%/222)#l2T\A.=v)<)<)>)>???((%.*>*>*@*@AAA  !7!%!3	5 	5 	5U;%788999%%''
U;%7888>	*	, 	, 	,
 	))-)EEE''**$s8}}4555h--K	M 	M 	M M*%/222)#l2T\A=(<7$,Fv)<)<)>)>???((%.*>*>*@*@AAA  !7!%!3	5 	5 	5U;%788999%%''
U;%7888"::<<,f555
 	))-)EEE''**$s8}}4555h--K	M 	M 	M M*%/222)#l2T\A=(<7$,Fv)<)<)>)>???((%.*>*>*@*@AAA  !7!%!3	5 	5 	5U;%788999%%''
U;%7888"::<<,f555
 	))K"' 	* 	) 	) 	) ''**$s8}}4555h--K	M 	M 	M M*E(O444)#l2T\A=(<7$,Fv)<)<)>)>???((%.*>*>*@*@AAA  !7!%!3	5 	5 	5U;%788999%%''
U;%7888"::<<,f555
 	))-)EEE''**$s8}}4555h--K	M 	M 	M M*%/222)#l2T\A=(<7$,Fv)<)<)>)>???((%.*>*>*@*@AAA  !7!%!3	5 	5 	5U;%788999%%''
U;%7888"::<<,f55555r?   c                    |                      d          }t          dt          |          z             |                     dt          |          d           |d         d         }|                     d|d                    dt          z   d	z   | j        z   }d
| j        z   }|                     |                                |d                                                    |                     |                                |d                                                    |                     |d         | j	                   |                     | 
                    |d                              |                                 }|                     ||d                    |                                 }|                     |d           |d         d         }|                     d|d                    dt          z   d	z   | j        z   }d
| j        z   }|                     |                                |d                                                    |                     |                                |d                                                    |                     |d         | j	                   |                     | 
                    |d                              |                                 }|                     ||d                    |                     t          |d                    |                                  | j                            t"          t          g           |                      d          }t          dt          |          z             |                     dt          |          d           |d         d         }|                     d|d                    dt          z   d	z   | j        z   }dt"          z   d	z   | j        z   }|                     |                                |d                                                    |                     |                                |d                                                    |                     |d         | j	                   |                     | 
                    |d                              |                                 }|                     ||d                    |                                 }|                     |d           |                     t          |d                    dt          z   d	z   | j        z   }dt"          z   d	z   | j        z   }| j                            |dgt          j                  }|d         d         }t          j                    }	t          j        | j        |          |	_        t          j        |t0          d          |	d<   |                                  | j                            |	           |                      d          }t          dt          |          z             |                     dt          |          d           |d         d         }|                     d|d                    dt          z   d	z   | j        z   }dt"          z   d	z   | j        z   }|                     |                                |d                                                    |                     |                                |d                                                    |                     |d         | j	                   |                     | 
                    |d                              |                                 }|                     ||d                    |                                 }|                     |d           |                     t4          |d                    |d         d         }|                     d|d                    dt          z   d	z   | j        z   }d
| j        z   }|                     |                                |d                                                    |                     |                                |d                                                    |                     |d         | j	                   |                     | 
                    |d                              |                                 }|                     ||d                    |                                 }|                     |d           |                     t          |d                    |d         d         }|                     d|d                    dt          z   d	z   | j        z   }dt"          z   d	z   | j        z   }|                     |                                |d                                                    |                     |                                |d                                                    |                     |d         | j	                   |                     | 
                    |d                              |                                 }|                     ||d                    |                                 }|                     |d           d S )NrD   rE   rF   r   rG   rH   rI   r   r   rJ   r   rK   rL   rM   rN   rO   rP   rQ   primaryGroupToken)baseattrsscopeprimaryGroupID   rS   )rT   rU   rV   rW   r4   r-   rX   rY   rZ   rL   r[   r\   r]   r   r^   r*   r_   r7   search
SCOPE_BASEMessageDnr   MessageElementr   modifyr   )
r9   r`   ra   rb   rc   rd   re   resgroup_idms
             r>   test_change_primary_groupz)GroupAuditTests.test_change_primary_group   s
   
 ''**$s8}}4555h--K	M 	M 	M
 M*x999)#l2T\A.=v)<)<)>)>???((%.*>*>*@*@AAA  !7!%!3	5 	5 	5U;%788999%%''
U;%7888"::<<,f555 M*%/222)#l2T\A.=v)<)<)>)>???((%.*>*>*@*@AAA  !7!%!3	5 	5 	5U;%788999%%''
U;%7888>	*	, 	, 	, 	))-)EEE''**$s8}}4555h--K	M 	M 	M M*%/222)#l2T\A=(<7$,Fv)<)<)>)>???((%.*>*>*@*@AAA  !7!%!3	5 	5 	5U;%788999%%''
U;%7888"::<<,f555>	*	, 	, 	, )#l2T\A=(<7$,Fhoo84G3H$'N  4 4q6-. KMMvdh((!0 
 	 ''**$s8}}4555h--K	M 	M 	M M*E(O444)#l2T\A=(<7$,Fv)<)<)>)>???((%.*>*>*@*@AAA  !7!%!3	5 	5 	5U;%788999%%''
U;%7888"::<<,f555B	*	, 	, 	, M*%/222)#l2T\A.=v)<)<)>)>???((%.*>*>*@*@AAA  !7!%!3	5 	5 	5U;%788999%%''
U;%7888"::<<,f555>	*	, 	, 	, M*x999)#l2T\A=(<7$,Fv)<)<)>)>???((%.*>*>*@*@AAA  !7!%!3	5 	5 	5U;%788999%%''
U;%7888"::<<,f55555r?   )__name__
__module____qualname__r$   rA   rf   rw   __classcell__)r=   s   @r>   r   r   ,   s{        -) -) -) -) -)^, , , , ,P6 P6 P6dV6 V6 V6 V6 V6 V6 V6r?   r   )__doc__samba.testssambasamba.dcerpc.messagingr   r   samba.dcerpc.windows_event_idsr   r   samba.samdbr   
samba.authr   r%   samba.tests.audit_log_baser	   r
   r*   r   r4   generate_random_passwordr5   SECOND_USER_NAMESECOND_USER_PASSr7   r8   r    r?   r>   <module>r      sH  "      G G G G G G G G              % % % % % % 				 7 7 7 7 7 7 $ $ $ $ $ $ 



            	*E*2r22	$ 151"b99   _6 _6 _6 _6 _6& _6 _6 _6 _6 _6r?   