'If request.session was modified, or if the configuration is to save the
session every time, save the changes and set a session cookie or delete
the session cookie if the session has been emptied.'

def process_response(self, request, response):

    try:
        accessed = request.session.accessed
        modified = request.session.modified
        empty = request.session.is_empty()
    except AttributeError:
        pass
    else:
        if ((settings.SESSION_COOKIE_NAME in request.COOKIES) and empty):
            response.delete_cookie(settings.SESSION_COOKIE_NAME, path=settings.SESSION_COOKIE_PATH, domain=settings.SESSION_COOKIE_DOMAIN)
        else:
            if accessed:
                patch_vary_headers(response, ('Cookie',))
            if ((modified or settings.SESSION_SAVE_EVERY_REQUEST) and (not empty)):
                if request.session.get_expire_at_browser_close():
                    max_age = None
                    expires = None
                else:
                    max_age = request.session.get_expiry_age()
                    expires_time = (time.time() + max_age)
                    expires = cookie_date(expires_time)
                if (response.status_code != 500):
                    try:
                        request.session.save()
                    except UpdateError:
                        raise SuspiciousOperation("The    request's    session    was    deleted    before    the    request    completed.    The    user    may    have    logged    out    in    a    concurrent    request,    for    example.")
                    response.set_cookie(settings.SESSION_COOKIE_NAME, request.session.session_key, max_age=max_age, expires=expires, domain=settings.SESSION_COOKIE_DOMAIN, path=settings.SESSION_COOKIE_PATH, secure=(settings.SESSION_COOKIE_SECURE or None), httponly=(settings.SESSION_COOKIE_HTTPONLY or None))
    return response
