##// END OF EJS Templates
Merge pull request #6854 from takluyver/post-new-terminal...
Merge pull request #6854 from takluyver/post-new-terminal Create new terminals with POST request to API

File last commit:

r18616:d4e327ea
r18785:2ad28dc5 merge
Show More
handlers.py
41 lines | 1.3 KiB | text/x-python | PythonLexer
#encoding: utf-8
"""Tornado handlers for the terminal emulator."""
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
import tornado
from tornado import web
import terminado
from ..base.handlers import IPythonHandler
class TerminalHandler(IPythonHandler):
"""Render the terminal interface."""
@web.authenticated
def get(self, term_name):
self.write(self.render_template('terminal.html',
ws_path="terminals/websocket/%s" % term_name))
class TermSocket(terminado.TermSocket, IPythonHandler):
def get(self, *args, **kwargs):
if not self.get_current_user():
raise web.HTTPError(403)
# FIXME: only do super get on tornado ≥ 4
# tornado 3 has no get, will raise 405
if tornado.version_info >= (4,):
return super(TermSocket, self).get(*args, **kwargs)
def clear_cookie(self, *args, **kwargs):
"""meaningless for websockets"""
pass
def open(self, *args, **kwargs):
if tornado.version_info < (4,):
try:
self.get(*self.open_args, **self.open_kwargs)
except web.HTTPError:
self.close()
raise
super(TermSocket, self).open(*args, **kwargs)