HEX
Server: LiteSpeed
System: Linux shams.tasjeel.ae 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 08:09:09 EST 2025 x86_64
User: infowars (1469)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //lib64/python3.9/site-packages/__pycache__/ldapurl.cpython-39.opt-1.pyc
a

�.d?0�
@s�dZdZgd�ZddlmZddlmZmZdZdZ	dZ
dZd	d
ede	de
d
ediZd	ee	e
ed�Z
ed
�Zed�Zdd�Zdd�ZGdd�d�ZGdd�de�ZGdd�d�Zd	S)zi
ldapurl - handling of LDAP URLs as described in RFC 4516

See https://www.python-ldap.org/ for details.
z3.4.3)	�SEARCH_SCOPE�SEARCH_SCOPE_STR�LDAP_SCOPE_BASE�LDAP_SCOPE_ONELEVEL�LDAP_SCOPE_SUBTREE�	isLDAPUrl�LDAPUrlExtension�LDAPUrlExtensions�LDAPUrl�)�MutableMapping)�quote�unquote���N��base�one�sub�subordinates)rrrrr�cCs|���d�S)z.Returns True if s is a LDAP URL, else False
  )zldap://zldaps://zldapi://)�lower�
startswith��srr�-/usr/lib64/python3.9/site-packages/ldapurl.pyr2srcCst|��dd��dd�S)z Returns URL encoding of string s�,z%2C�/z%2F)r�replacerrrr�
ldapUrlEscape8src@sJeZdZdZddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dS)ra

  Class for parsing and unparsing LDAP URL extensions
  as described in RFC 4516.

  Usable class attributes:
    critical
          Boolean integer marking the extension as critical
    extype
          Type of extension
    exvalue
          Value of extension
  Nr
cCs$||_||_||_|r |�|�dS�N)�critical�extype�exvalue�_parse)�selfZextensionStrr!r"r#rrr�__init__Js
zLDAPUrlExtension.__init__cCs�|��}|sd\|_|_dS|ddk|_|ddkrF|dd���}z|�dd�\|_|_Wn ty~|d|_|_Yn0t|j���|_|j��|_dS)N)NNr
�!r�=)�stripr"r#r!�split�
ValueErrorr
)r%�	extensionrrrr$QszLDAPUrlExtension._parsecCsJ|jdur"d�d|jdk|j�Sd�d|jdk|jt|jp@d��SdS)Nz{}{}r'r
z{}{}={}r)r#�formatr!r"r�r%rrr�unparsecs
�zLDAPUrlExtension.unparsecCs|��Sr �r/r.rrr�__str__lszLDAPUrlExtension.__str__cCs"d�|jj|jjtt|��|j�S�Nz<{}.{} instance at {}: {}>�r-�	__class__�
__module__�__name__�hex�id�__dict__r.rrr�__repr__os
�zLDAPUrlExtension.__repr__cCs$|j|jko"|j|jko"|j|jkSr )r!r"r#�r%�otherrrr�__eq__ws

�
�zLDAPUrlExtension.__eq__cCs|�|�Sr �r=r;rrr�__ne__}szLDAPUrlExtension.__ne__)Nr
NN)r6r5�__qualname__�__doc__r&r$r/r1r:r=r?rrrrr<s
	rc@sneZdZdZdZddd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)rzJ
    Models a collection of LDAP URL extensions as
    a mapping type
    ��_dataNcCsi|_|dur|�|�dSr )rC�update)r%�defaultrrrr&�szLDAPUrlExtensions.__init__cCsFt|t�stdt|�j��||jkr8td�||j���||j|<dS)z�Store an extension

        name
            string
        value
            LDAPUrlExtension instance, whose extype nust match `name`
        z$value must be LDAPUrlExtension, not z+key {!r} does not match extension type {!r}N)	�
isinstancer�	TypeError�typer6r"r+r-rC)r%�name�valuerrr�__setitem__�s
�
��zLDAPUrlExtensions.__setitem__cCs
|j|Sr rB�r%rIrrr�__getitem__�szLDAPUrlExtensions.__getitem__cCs|j|=dSr rBrLrrr�__delitem__�szLDAPUrlExtensions.__delitem__cCs
t|j�Sr )�iterrCr.rrr�__iter__�szLDAPUrlExtensions.__iter__cCs
t|j�Sr )�lenrCr.rrr�__len__�szLDAPUrlExtensions.__len__cCsd�dd�|��D��S)Nrcss|]}t|�VqdSr )�str��.0�vrrr�	<genexpr>��z,LDAPUrlExtensions.__str__.<locals>.<genexpr>��join�valuesr.rrrr1�szLDAPUrlExtensions.__str__cCs"d�|jj|jjtt|��|j�Sr2)r-r4r5r6r7r8rCr.rrrr:�s
�zLDAPUrlExtensions.__repr__cCst||j�stS|j|jkSr )rFr4�NotImplementedrCr;rrrr=�szLDAPUrlExtensions.__eq__cCs.|���d�D]}|rt|�}|||j<qdS)Nr)r)r*rr")r%Z
extListStrZ
extension_str�errr�parse�szLDAPUrlExtensions.parsecCsd�dd�|��D��S)Nrcss|]}|��VqdSr r0rTrrrrW�rXz,LDAPUrlExtensions.unparse.<locals>.<genexpr>rYr.rrrr/�szLDAPUrlExtensions.unparse)N)r6r5r@rA�	__slots__r&rKrMrNrPrRr1r:r=r^r/rrrrr�s
rc
@s�eZdZdZddd�Zd"dd	�Zd
d�Zdd
�Zdd�Zdd�Z	dd�Z
dd�Zd#dd�Zdd�Z
dd�Zdd�Zdd�Zd d!�ZdS)$r	a�
  Class for parsing and unparsing LDAP URLs
  as described in RFC 4516.

  Usable class attributes:
    urlscheme
        URL scheme (either ldap, ldaps or ldapi)
    hostport
        LDAP host (default '')
    dn
        String holding distinguished name (default '')
    attrs
        list of attribute types (default None)
    scope
        integer search scope for ldap-module
    filterstr
        String representation of LDAP Search Filters
        (see RFC 4515)
    extensions
        Dictionary used as extensions store
    who
        Maps automagically to bindname LDAP URL extension
    cred
        Maps automagically to X-BINDPW LDAP URL extension
  ZbindnamezX-BINDPW)�who�credN�ldaprcCsh|��|_||_||_||_||_||_|p2ti�|_|dkrH|�	|�|	dkrV|	|_
|
dkrd|
|_dSr )r�	urlscheme�hostport�dn�attrs�scope�	filterstrr�
extensionsr$r`ra)r%ZldapUrlrcrdrerfrgrhrir`rarrrr&�s

zLDAPUrl.__init__cCsT|j|jkoR|j|jkoR|j|jkoR|j|jkoR|j|jkoR|j|jkoR|j|jkSr )rcrdrerfrgrhrir;rrrr=�s
�
�
�
�
�
�zLDAPUrl.__eq__cCs|�|�Sr r>r;rrrr?szLDAPUrl.__ne__c
Cs�t|�stdt|���|�dd�\}}|��|_|�d�}|�d�}|dkrj|dkrjt|�|_d|_	dS|dkr�|dks�||kr�t|d|��|_||dd�}n@|dkr�|dks�||kr�t|d|��|_||d�}ntd	��|�dd
�}t
|�}|dk�rt|d���|_	|dk�rB|d�rBt|d����d
�|_|dk�r�|d��}zt
||_Wn$t�y�tdt|���Yn0|d
k�r�|d��}	|	�s�d|_n
t|	�|_|dk�r�|d
�r�t�|_|j�|d
�nd|_dS)zn
    parse a LDAP URL and set the class attributes
    urlscheme,host,dn,attrs,scope,filterstr,extensions
    z5Value %s for ldap_url does not seem to be a LDAP URL.�://rr�?���rNz$Something completely weird happened!�r
rrrzInvalid search scope %s�)rr+�reprr*rrc�findr
rdrerQr)rfrrg�KeyErrorrhrrir^)
r%�ldap_url�scheme�restZ	slash_posZ
qemark_posZ	paramlistZ
paramlist_lenrgrhrrrr$sP









zLDAPUrl._parsecCs0|��D]"\}}t||�durt|||�qdS)z�
    Apply defaults to all class attributes which are None.

    defaults
        Dictionary containing a mapping from class attributes
        to default values
    N)�items�getattr�setattr)r%�defaults�krJrrr�
applyDefaults;szLDAPUrl.applyDefaultscCs,|jdkrt|j�}n|j}|j�d|��S)zE
    Returns LDAP URL suitable to be passed to ldap.initialize()
    �ldapirj)rcrrd)r%rdrrr�
initializeUrlGs
zLDAPUrl.initializeUrlcCs�|jdurd}nd�|j�}t|j}|jdur6d}n
t|j�}t|j�}|jdkr`t|j�}n|j}d�	|j|||||�}|j
r�|d|j
��}|S)z=
    Returns LDAP URL depending on class attributes set.
    Nrrr{z{}://{}/{}?{}?{}?{}rk)rfrZrrgrhrrercrdr-rir/)r%Z	attrs_strZ	scope_strrhrerdrrrrrr/Rs$






�zLDAPUrl.unparsecCs�t|t�stdt|�j��|dur,|��}t|t�sHtdt|�j��|durVd}n$t|t�srtdt|�j��d|}d�|||��|�S)a
    Returns a string with HTML link for this LDAP URL.

    urlPrefix
        Prefix before LDAP URL (e.g. for addressing another web-based client)
    hrefText
        link text/description
    hrefTarget
        string added as link target attribute
    zurlPrefix must be str, not NzhrefText must be str, not rzhrefTarget must be str, not z target="%s"z<a{} href="{}{}">{}</a>)rFrSrGrHr6r/r-)r%Z	urlPrefixZhrefTextZ
hrefTarget�targetrrr�htmlHREFms(
�
�
��zLDAPUrl.htmlHREFcCs|��Sr r0r.rrrr1�szLDAPUrl.__str__cCs"d�|jj|jjtt|��|j�Sr2r3r.rrrr:�s
�zLDAPUrl.__repr__cCsd||jvrL|j|}|jrF||jvrF|j|jdurFt|j|j�}q`dSntd�|jj|���|S)Nz{} has no attribute {})�attr2extyperir#r
�AttributeErrorr-r4r6)r%rIr"�resultrrr�__getattr__�s

���zLDAPUrl.__getattr__cCsV||jvrH|j|}|dur(t||�qR|dkrRt|t|�d�|j|<n
||j|<dS)N)r"r#)r�delattrrr
rir9)r%rIrJr"rrr�__setattr__�s

�zLDAPUrl.__setattr__cCsH||jvr<|j|}|jrDz|j|=WqDty8YqD0n|j|=dSr )rrirqr9)r%rIr"rrr�__delattr__�s

zLDAPUrl.__delattr__)
NrbrrNNNNNN)rNN)r6r5r@rArr&r=r?r$rzr|r/r~r1r:r�r�r�rrrrr	�s(
�

7
r	)rA�__version__�__all__�collections.abcr�urllib.parserr
rrrZLDAP_SCOPE_SUBORDINATESrrrHZ
StringTypeZ	TupleTyperrrrr	rrrr�<module>s6
�	�EC