HEX
Server: LiteSpeed
System: Linux s882.use1.mysecurecloudhost.com 4.18.0-553.27.1.lve.el8.x86_64 #1 SMP Fri Nov 8 15:09:45 UTC 2024 x86_64
User: airservicecom (4307)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //lib64/python3.6/site-packages/__pycache__/ldapurl.cpython-36.opt-1.pyc
3

�`a�0�
@s�dZdZdddddddd	d
g	ZddlmZmZmZdZd
ZdZ	dZ
ddedede	de
diZdeee	e
d�Ze
d�Ze
f�Zdd�Zdd�ZGdd�de�ZGdd	�d	e�ZGdd
�d
e�ZdS)zi
ldapurl - handling of LDAP URLs as described in RFC 4516

See https://www.python-ldap.org/ for details.
z3.3.1�SEARCH_SCOPE�SEARCH_SCOPE_STR�LDAP_SCOPE_BASE�LDAP_SCOPE_ONELEVEL�LDAP_SCOPE_SUBTREE�	isLDAPUrl�LDAPUrlExtension�LDAPUrlExtensions�LDAPUrl�)�quote�unquote�MutableMapping���N��base�one�sub�subordinates)rrrrrcCs&|j�}|jd�p$|jd�p$|jd�S)z*
  Returns 1 if s is a LDAP URL, 0 else
  zldap://zldaps://zldapi://)�lower�
startswith)�sZs_lower�r�/usr/lib64/python3.6/ldapurl.pyr1s

cCst|�jdd�jdd�S)z Returns URL encoding of string s�,z%2C�/z%2F)r�replace)rrrr�
ldapUrlEscape<src@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 |j|�dS)N)�critical�extype�exvalue�_parse)�selfZextensionStrrr r!rrr�__init__Ns
zLDAPUrlExtension.__init__cCs�|j�}|sd\|_|_dS|ddk|_|ddkrF|dd�j�}y|jdd�\|_|_Wn"tk
r�|d|_|_YnXt|jj��|_|jj�|_dS)Nr
�!r�=)NN)�stripr r!r�split�
ValueErrorr)r#�	extensionrrrr"UszLDAPUrlExtension._parsecCsJ|jdkr"dd|jdk|jfSdd|jdk|jt|jp>d�fSdS)Nz%s%sr%r
z%s%s=%sr)r!rr r)r#rrr�unparsegs

zLDAPUrlExtension.unparsecCs|j�S)N)r+)r#rrr�__str__pszLDAPUrlExtension.__str__cCs"d|jj|jjtt|��|jfS)Nz<%s.%s instance at %s: %s>)�	__class__�
__module__�__name__�hex�id�__dict__)r#rrr�__repr__ss

zLDAPUrlExtension.__repr__cCs$|j|jko"|j|jko"|j|jkS)N)rr r!)r#�otherrrr�__eq__{szLDAPUrlExtension.__eq__cCs|j|�S)N)r5)r#r4rrr�__ne__�szLDAPUrlExtension.__ne__)Nr
NN)r/r.�__qualname__�__doc__r$r"r+r,r3r5r6rrrrr@s
	c@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|_|dk	r|j|�dS)N)r9�update)r#�defaultrrrr$�szLDAPUrlExtensions.__init__cCsFt|t�stdt|�j��||jkr8tdj||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�typer/r r)�formatr9)r#�name�valuerrr�__setitem__�s

zLDAPUrlExtensions.__setitem__cCs
|j|S)N)r9)r#r@rrr�__getitem__�szLDAPUrlExtensions.__getitem__cCs|j|=dS)N)r9)r#r@rrr�__delitem__�szLDAPUrlExtensions.__delitem__cCs
t|j�S)N)�iterr9)r#rrr�__iter__�szLDAPUrlExtensions.__iter__cCs
t|j�S)N)�lenr9)r#rrr�__len__�szLDAPUrlExtensions.__len__cCsdjdd�|j�D��S)Nrcss|]}t|�VqdS)N)�str)�.0�vrrr�	<genexpr>�sz,LDAPUrlExtensions.__str__.<locals>.<genexpr>)�join�values)r#rrrr,�szLDAPUrlExtensions.__str__cCs"d|jj|jjtt|��|jfS)Nz<%s.%s instance at %s: %s>)r-r.r/r0r1r9)r#rrrr3�s

zLDAPUrlExtensions.__repr__cCst||j�stS|j|jkS)N)r<r-�NotImplementedr9)r#r4rrrr5�szLDAPUrlExtensions.__eq__cCs2x,|j�jd�D]}|rt|�}|||j<qWdS)Nr)r'r(rr )r#Z
extListStrZ
extension_str�errr�parse�szLDAPUrlExtensions.parsecCsdjdd�|j�D��S)Nrcss|]}|j�VqdS)N)r+)rJrKrrrrL�sz,LDAPUrlExtensions.unparse.<locals>.<genexpr>)rMrN)r#rrrr+�szLDAPUrlExtensions.unparse)r9)N)r/r.r7r8�	__slots__r$rBrCrDrFrHr,r3r5rQr+rrrrr�s
c
@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�ldaprcCsd||_||_||_||_||_||_|p.ti�|_|dkrD|j|�|	dkrR|	|_	|
dkr`|
|_
dS)N)�	urlscheme�hostport�dn�attrs�scope�	filterstrr�
extensionsr"rSrT)r#ZldapUrlrVrWrXrYrZr[r\rSrTrrrr$�s
zLDAPUrl.__init__cCsT|j|jkoR|j|jkoR|j|jkoR|j|jkoR|j|jkoR|j|jkoR|j|jkS)N)rVrWrXrYrZr[r\)r#r4rrrr5�szLDAPUrl.__eq__cCs|j|�S)N)r5)r#r4rrrr6szLDAPUrl.__ne__c
Cst|�stdt|���|jdd�\}}|j�|_|jdkrJtd|j��|jd�}|jd	�}|dkr�|dkr�t|�|_d
|_	dS|dkr�|dks�||kr�t|d|��|_||dd�}nB|dko�|dks�||k�r�t|d|��|_||d�}ntd��|jd	d
�}t
|�}|dk�r0t|d�j�|_	|dk�r\|d�r\t|dj��jd�|_|dk�r�|dj�}yt||_
Wn&tk
�r�tdt|���YnX|d
k�r�|dj�}	|	�s�d|_n
t|	�|_|dk�r
|d
�rt�|_|jj|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.z://rrU�ldaps�ldapiz,LDAP URL contains unsupported URL scheme %s.r�?rNz$Something completely weird happened!�r
rrrzInvalid search scope %s�)rUr]r^���rbrbrbrb)rr)�reprr(r'rV�findrrWrXrGrYrrZ�KeyErrorr[rr\rQ)
r#�ldap_url�scheme�restZ	slash_posZ
qemark_posZ	paramlistZ
paramlist_lenrZr[rrrr"sT










zLDAPUrl._parsecCs4x.|j�D]"\}}t||�dkr
t|||�q
WdS)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#Zdefaults�krArrr�
applyDefaultsAszLDAPUrl.applyDefaultscCs*|jdkrt|j�}n|j}d|j|fS)zE
    Returns LDAP URL suitable to be passed to ldap.initialize()
    r^z%s://%s)rVrrW)r#rWrrr�
initializeUrlMs
zLDAPUrl.initializeUrlcCs�|jdkrd}ndj|j�}t|j}|jdkr6d}n
t|j�}t|j�}|jdkr`t|j�}n|j}d|j|||||f}|j	r�|d|j	j
�}|S)z=
    Returns LDAP URL depending on class attributes set.
    Nrrr^z%s://%s/%s?%s?%s?%sr_)rYrMrrZr[rrXrVrWr\r+)r#Z	attrs_strZ	scope_strr[rXrWrfrrrr+Xs"





zLDAPUrl.unparsecCs�t|t�stdt|�j��|dkr,|j�}t|t�sHtdt|�j��|dkrVd}n$t|t�srtdt|�j��d|}d|||j�|fS)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%s href="%s%s">%s</a>)r<rIr=r>r/r+)r#Z	urlPrefixZhrefTextZ
hrefTarget�targetrrr�htmlHREFss 


zLDAPUrl.htmlHREFcCs|j�S)N)r+)r#rrrr,�szLDAPUrl.__str__cCs"d|jj|jjtt|��|jfS)Nz<%s.%s instance at %s: %s>)r-r.r/r0r1r2)r#rrrr3�s

zLDAPUrl.__repr__cCsd||jkrL|j|}|jrF||jkrF|j|jdk	rFt|j|j�}q`dSntd|jj|f��|S)Nz%s has no attribute %s)�attr2extyper\r!r�AttributeErrorr-r/)r#r@r �resultrrr�__getattr__�s


zLDAPUrl.__getattr__cCsV||jkrH|j|}|dkr(t||�qR|dkrRt|t|�d�|j|<n
||j|<dS)N)r r!)rq�delattrrrr\r2)r#r@rAr rrr�__setattr__�s

zLDAPUrl.__setattr__cCsJ||jkr>|j|}|jrFy|j|=WqFtk
r:YqFXn|j|=dS)N)rqr\rer2)r#r@r rrr�__delattr__�s

zLDAPUrl.__delattr__)
NrUrrNNNNNN)rNN)r/r.r7r8rqr$r5r6r"rmrnr+rpr,r3rtrvrwrrrrr	�s&


9
)r8�__version__�__all__Zldap.compatrrr
rrrZLDAP_SCOPE_SUBORDINATESrrr>Z
StringTypeZ	TupleTyperr�objectrrr	rrrr�<module>s6
EC