コード例 #1
0
def closeSession(request):
    """Close the session, and, if necessary, set any required cookies
    """
    session = ISession(request, None)
    if session is not None:
        if session.accessed():
            session.persist()
            sessionInstructions = session.request
            if sessionInstructions.get('set_cookie', False):
                if sessionInstructions['cookie_out']:
                    cookieObj = session.cookie[session.key]

                    key = cookieObj.key
                    value = session.cookie.value_encode(cookieObj.value)[1]

                    args = dict([(k, v) for k, v in cookieObj.items() if v])
                    args.setdefault('path', session._path)

                    if args.get('httponly'):
                        args.pop('httponly')
                        args['http_only'] = True

                    request.response.setCookie(key, value, **args)