
    qZh                         d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	m
Z
 dZedz   Zedz   Zed	z   Z G d
 de          ZdS )z
ldap.controls.sessiontrack - class for session tracking control
(see draft-wahl-ldap-session)

See https://www.python-ldap.org/ for project details.
    )RequestControl)	namedtypeuniv)encoder)
LDAPStringLDAPOIDz1.3.6.1.4.1.21008.108.63.1z.1z.2z.3c                   H    e Zd ZdZ G d dej                  ZeZd Z	d Z
dS )SessionTrackingControla  
  Class for Session Tracking Control

  Because criticality MUST be false for this control it cannot be set
  from the application.

  sessionSourceIp
    IP address of the request source as string
  sessionSourceName
    Name of the request source as string
  formatOID
    OID as string specifying the format
  sessionTrackingIdentifier
    String containing a specific tracking ID
  c            
           e Zd Z ej         ej        d e                       ej        d e                       ej        d e                       ej        d e                                ZdS )4SessionTrackingControl.SessionIdentifierControlValuesessionSourceIpsessionSourceName	formatOIDsessionTrackingIdentifierN)	__name__
__module____qualname__r   
NamedTypes	NamedTyper   r   componentType     f/var/www/lab.imftr.de/alumni/alumnizer_venv/lib/python3.11/site-packages/ldap/controls/sessiontrack.pySessionIdentifierControlValuer   '   s        (I(i+JJLL99i-jjll;;i+ggii00i5jjllCC	 MMMr   r   c                 R    d| _         ||||f\  | _        | _        | _        | _        d S )NF)criticalityr   r   r   r   )selfr   r   r   r   s        r   __init__zSessionTrackingControl.__init__1   s7    D'	2KK ^D/t?]?]?]r   c                    |                                  }|                    dt          | j                             |                    dt          | j                             |                    dt          | j                             |                    dt          | j                             t          j	        |          S )Nr   r   r   r   )
r   setComponentByNamer   r   r   r   r   r   r   encode)r   ss     r   encodeControlValuez)SessionTrackingControl.encodeControlValue7   s    **,,A*:d6J+K+KLLL,Z8N-O-OPPPWT^%<%<===4Z@^5_5_```>!r   N)r   r   r   __doc__r   Sequencer   SESSION_TRACKING_CONTROL_OIDcontrolTyper   r#   r   r   r   r
   r
      sr              dm    -+L L L    r   r
   N)r$   ldap.controlsr   pyasn1.typer   r   pyasn1.codec.berr   pyasn1_modules.rfc2251r   r   r&   2SESSION_TRACKING_FORMAT_OID_RADIUS_ACCT_SESSION_ID8SESSION_TRACKING_FORMAT_OID_RADIUS_ACCT_MULTI_SESSION_ID$SESSION_TRACKING_FORMAT_OID_USERNAMEr
   r   r   r   <module>r/      s     ) ( ( ( ( ( & & & & & & & & $ $ $ $ $ $ 5 5 5 5 5 5 5 5  < 5QRV5V 2;WX\;\ 8'CD'H $' ' ' ' '^ ' ' ' ' 'r   