def authenticated(request, user_account, new_account=False): """ This sets the auth cookies and redirects to the page defined in horus.login_redirect, defaults to a view named 'index'. If a ``came_from`` request parameter is found, this value is used for redirection instead. """ settings = request.registry.settings headers = remember(request, user_account.id) autologin = asbool(settings.get('horus.autologin', False)) loggedin_event = LoggedInEvent(request, user_account, new_account) request.registry.notify( loggedin_event ) # resolve `came_from` first try from query params login_redirect_view = request.params.get('came_from') # next from session (and delete the key if exists) if not login_redirect_view: login_redirect_view = request.session.get('came_from') if login_redirect_view: del request.session['came_from'] # last fallback to configured url if not login_redirect_view: login_redirect_view = route_url(settings.get('horus.login_redirect', 'index'), request) if hasattr(loggedin_event, 'location'): location = "%s?came_from=%s" % (loggedin_event.location, login_redirect_view) return HTTPFound(location=location, headers=headers) if not autologin: request.session.flash(translate( u"Logged in successfully.", request), 'success') return HTTPFound(location=login_redirect_view, headers=headers)
def translate(self, string): return translate(string, self.request)