예제 #1
0
파일: fullhistory.py 프로젝트: fevzidas/oam
def get_or_create_request():
    '''
    Returns a request instance that is global for this request
    If this function is called outside of a web request then the user_name is marked as system
    '''
    thread_ident = thread.get_ident()
    request, rq = STATE.get(thread_ident, (None, None))
    if not rq:
        rq = Request()
        if request:
            rq.request_path = request.path
            if request.user.is_anonymous():
                rq.user_name = u'(Anonymous)'
            else:
                rq.user_pk = request.user.pk
                rq.user_name = unicode(request.user)[:255]
        else:
            rq.user_name = u'(System)'
        rq.save()
        STATE[thread_ident] = (request, rq)
    return rq