"next_url": next_url,
"username": username,
"login_target": target,
+ "cancel_url": '%s/login/cancel?%s' % (self.basepath,
+ self.trans.get_GET_arg()),
}
context.update(kwargs)
if self.trans is not None:
def __init__(self, *args, **kwargs):
super(Login, self).__init__(*args, **kwargs)
+ self.cancel = Cancel(*args, **kwargs)
self.first_login = None
self.info = Info(self._site)
return self._template('logout.html', title='Logout')
+class Cancel(Page):
+
+ def GET(self, *args, **kwargs):
+
+ session = UserSession()
+ session.logout(None)
+
+ # return to the caller if any
+ transdata = self.get_valid_transaction('login', **kwargs).retrieve()
+ if 'login_return' not in transdata:
+ raise cherrypy.HTTPError(401)
+ raise cherrypy.HTTPRedirect(transdata['login_return'])
+
+ def root(self, *args, **kwargs):
+ op = getattr(self, cherrypy.request.method, self.GET)
+ if callable(op):
+ return op(*args, **kwargs)
+
+
class LoginMgrsInstall(object):
def __init__(self):
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-md-offset-2 col-xs-12 col-sm-10 col-md-10 submit">
- <a href="{{ basepath }}/" title="Cancel" class="btn btn-link" tabindex="4">Cancel</a>
+ {% if cancel_url %}
+ <a href="{{ cancel_url }}" title="Cancel" class="btn btn-link" tabindex="4">Cancel</a>
+ {% else %}
+ <a href="{{ basepath }}" title="Cancel" class="btn btn-link" tabindex="4">Cancel</a>
+ {% endif %}
{% if next_url %}
<a href="{{ next_url }}" title="Next authentication method" class="btn btn-link" tabindex="5">Next method </a>
{% endif %}