
    d                         d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z ddlmZ dd	lmZ d
Z G d deeee          Z
dS )z+Tornado handlers for the terminal emulator.    )utcnow)warn_disabled_authorization)JupyterHandler)WebSocketMixin)
TermSocket)web   )TerminalsMixin	terminalsc                   N     e Zd ZdZeZd Zd Z fdZ fdZ	d	 fd	Z
d Z xZS )
r   zA terminal websocket.c                 V    t          j        | |fi | t          j        | |           dS )zInitialize the socket.N)BaseTermSocket
initializer
   )selfnameterm_managerkwargss       Alib/python3.11/site-packages/jupyter_server_terminals/handlers.pyr   zTermSocket.initialize   s6    !$?????!$-----    c                     dS )zuTerminado adds redundant origin_check
        Tornado already calls check_origin, so don't do anything here.
        T r   s    r   origin_checkzTermSocket.origin_check   s	     tr   c                 X   | j         }|st          j        d          | j        st	                       n6| j                            | |d| j                  st          j        d          |d         | j        j        vrt          j        d           t                      j
        |i |S )zGet the terminal socket.i  executer   i  )current_userr   	HTTPError
authorizerr   is_authorizedauth_resourcer   r   superget)r   argsr   user	__class__s       r   r"   zTermSocket.get    s      	%-$$$  	%'))))..tT9dFXYY 	%-$$$7$+555-$$$uww{D+F+++r   c                 r    t                                          |           |                                  dS )zHandle a socket mesage.N)r!   
on_message_update_activity)r   messager%   s     r   r'   zTermSocket.on_message2   s3    7###r   Fc                 v    t                                          ||           |                                  dS )zWrite a message to the socket.)binaryN)r!   write_messager(   )r   r)   r+   r%   s      r   r,   zTermSocket.write_message7   s8    gf555r   c                     t                      | j        j        d<   | j        | j        j        v r*t                      | j        j        | j                 _        d S d S )Nterminal_last_activity)r   applicationsettings	term_nameterminal_managerr   last_activityr   s    r   r(   zTermSocket._update_activity<   sQ    >Dhh!":;>T2<<<LRHHD!+DN;III =<r   )F)__name__
__module____qualname____doc__AUTH_RESOURCEr    r   r   r"   r'   r,   r(   __classcell__)r%   s   @r   r   r      s        !M. . .
  , , , , ,$         
           
U U U U U U Ur   r   N)r7   jupyter_server._tzr   jupyter_server.auth.utilsr   jupyter_server.base.handlersr   jupyter_server.base.websocketr   terminado.websocketr   r   tornador   baser
   r8   r   r   r   <module>rA      s    1 1 & % % % % % A A A A A A 7 7 7 7 7 7 8 8 8 8 8 8 < < < < < <                  0U 0U 0U 0U 0U 0U 0U 0U 0U 0Ur   