
    ?De                        d Z ddlmZ ddlZej        ek    sJ  ede dej         d                      ddlZddlmZmZm	Z	  G d d	e          Z
e
e	ej        <    G d
 de          Zee	ej        <    G d de          Zee	ej        <   dS )z
controls.libldap - LDAP controls wrapper classes with en-/decoding done
by OpenLDAP functions

See https://www.python-ldap.org/ for details.
    )__version__Nzldap z and _ldap z version mismatch!)RequestControlLDAPControlKNOWN_RESPONSE_CONTROLSc                   .    e Zd ZdZej        ZddZd ZdS )AssertionControlz
  LDAP Assertion control, as defined in RFC 4528

  filterstr
    LDAP filter string specifying which assertions have to match
    so that the server processes the operation
  T(objectClass=*)c                 "    || _         || _        d S Ncriticality	filterstrselfr   r   s      /./ldap/controls/libldap.py__init__zAssertionControl.__init__       "DDNNN    c                 4    t          j        | j                  S r   )_ldapencode_assertion_controlr   r   s    r   encodeControlValuez#AssertionControl.encodeControlValue!   s    )$.999r   N)Tr	   )	__name__
__module____qualname____doc__ldapCONTROL_ASSERTcontrolTyper   r    r   r   r   r      sK          #+   : : : : :r   r   c                   .    e Zd ZdZej        ZddZd ZdS )MatchedValuesControlz
  LDAP Matched Values control, as defined in RFC 3876

  filterstr
    LDAP filter string specifying which attribute values
    should be returned
  Fr	   c                 "    || _         || _        d S r   r   r   s      r   r   zMatchedValuesControl.__init__2   r   r   c                 4    t          j        | j                  S r   )r   !encode_valuesreturnfilter_controlr   r   s    r   r   z'MatchedValuesControl.encodeControlValue6   s    24>BBBr   N)Fr	   )	r   r   r   r   r   CONTROL_VALUESRETURNFILTERr    r   r   r!   r   r   r#   r#   '   sP          /+   C C C C Cr   r#   c                   4    e Zd ZdZej        ZddZd Zd Z	dS )SimplePagedResultsControlz
  LDAP Control Extension for Simple Paged Results Manipulation

  size
    Page size requested (number of entries to be returned)
  cookie
    Cookie string received with last page
  FNc                 2    || _         ||c| _        | _        d S r   )r   sizecookie)r   r   r+   r,   s       r   r   z"SimplePagedResultsControl.__init__G   s    "D DIdkkkr   c                 @    t          j        | j        | j                  S r   )r   encode_page_controlr+   r,   r   s    r   r   z,SimplePagedResultsControl.encodeControlValueK   s    $TYt{;;;r   c                 H    t          j        |          \  | _        | _        d S r   )r   decode_page_controlr+   r,   )r   encodedControlValues     r   decodeControlValuez,SimplePagedResultsControl.decodeControlValueN   s     !56IJJDIdkkkr   )FNN)
r   r   r   r   r   CONTROL_PAGEDRESULTSr    r   r   r2   r!   r   r   r)   r)   <   s_          )+( ( ( (< < <K K K K Kr   r)   )r   ldap.pkginfor   r   ImportErrorr   ldap.controlsr   r   r   r   r   r#   r'   r)   r3   r!   r   r   <module>r7      s\    % $ $ $ $ $ +%%%{X;XX53DXXXYY &%%  L L L L L L L L L L: : : : :~ : : :" 0@ + ,C C C C C> C C C$ <P 7 8K K K K K K K K* 6O 1 2 2 2r   