##// END OF EJS Templates
Make traitlets notify check more robust against classes redefining equality and bool...
Make traitlets notify check more robust against classes redefining equality and bool Before this change, numpy arrays caused problems since comparing two numpy arrays returns an array of truth values, rather than a single truth value. This change guards against redefining the semantics of comparison by notifying on a trait change if the equality comparison returns anything other than an explicit True value.

File last commit:

r15238:ae2edd0e
r15462:e1b4ab8c
Show More
login.py
62 lines | 1.9 KiB | text/x-python | PythonLexer
Brian E. Granger
Splitting handlers into different files....
r10642 """Tornado handlers logging into the notebook.
Brian E. Granger
Adding new files.
r10641
Authors:
* Brian Granger
"""
#-----------------------------------------------------------------------------
Brian E. Granger
Splitting handlers into different files....
r10642 # Copyright (C) 2011 The IPython Development Team
Brian E. Granger
Adding new files.
r10641 #
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
import uuid
from tornado.escape import url_escape
from IPython.lib.security import passwd_check
Brian E. Granger
Updating import statements after moving notebook files around.
r10649 from ..base.handlers import IPythonHandler
Brian E. Granger
Adding new files.
r10641
#-----------------------------------------------------------------------------
Brian E. Granger
Splitting handlers into different files....
r10642 # Handler
Brian E. Granger
Adding new files.
r10641 #-----------------------------------------------------------------------------
class LoginHandler(IPythonHandler):
def _render(self, message=None):
self.write(self.render_template('login.html',
MinRK
s/base_project_url/base_url/...
r15238 next=url_escape(self.get_argument('next', default=self.base_url)),
Brian E. Granger
Adding new files.
r10641 message=message,
))
def get(self):
if self.current_user:
MinRK
s/base_project_url/base_url/...
r15238 self.redirect(self.get_argument('next', default=self.base_url))
Brian E. Granger
Adding new files.
r10641 else:
self._render()
def post(self):
pwd = self.get_argument('password', default=u'')
if self.login_available:
if passwd_check(self.password, pwd):
self.set_secure_cookie(self.cookie_name, str(uuid.uuid4()))
else:
self._render(message={'error': 'Invalid password'})
return
MinRK
s/base_project_url/base_url/...
r15238 self.redirect(self.get_argument('next', default=self.base_url))
Brian E. Granger
Adding new files.
r10641
Brian E. Granger
More work on the handlers
r10647 #-----------------------------------------------------------------------------
# URL to handler mappings
#-----------------------------------------------------------------------------
default_handlers = [(r"/login", LoginHandler)]