o
    i                     @   sv   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 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                       sV   e Zd ZdZeZdd Zdd Z fddZ fdd	Z	d fdd	Z
dd Z  ZS )r   zA terminal websocket.c                 K   s$   t j| |fi | t| | dS )zInitialize the socket.N)BaseTermSocket
initializer	   )selfnameterm_managerkwargs r   \/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/jupyter_server_terminals/handlers.pyr      s   zTermSocket.initializec                 C   s   dS )zuTerminado adds redundant origin_check
        Tornado already calls check_origin, so don't do anything here.
        Tr   r   r   r   r   origin_check   s   zTermSocket.origin_checkc                    sl   | j }|s
td| jst  n| j| |d| js td|d | jjvr-t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__r   r   r       s   


zTermSocket.getc                    s   t  | |   dS )zHandle a socket mesage.N)r   
on_message_update_activity)r   messager   r   r   r!   2   s   zTermSocket.on_messageFc                    s   t  j||d |   dS )zWrite a message to the socket.)binaryN)r   write_messager"   )r   r#   r$   r   r   r   r%   7   s   zTermSocket.write_messagec                 C   s6   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   r   r   r   r"   <   s   zTermSocket._update_activity)F)__name__
__module____qualname____doc__AUTH_RESOURCEr   r   r   r   r!   r%   r"   __classcell__r   r   r   r   r      s    r   N)r/   jupyter_server._tzr   jupyter_server.auth.utilsr   jupyter_server.base.handlersr   jupyter_server.base.websocketr   terminado.websocketr   r   tornador   baser	   r0   r   r   r   r   <module>   s    