Beispiel #1
0
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)
Beispiel #2
0
 def translate(self, string):
     return translate(string, self.request)