Пример #1
0
def get_current_user(_return_false=False):
    """
    Return the user associated with the current request thread.
    """
    from crum.signals import current_user_getter
    top_priority = -9999
    top_user = False if _return_false else None
    results = current_user_getter.send_robust(get_current_user)
    for receiver, response in results:
        priority = 0
        if isinstance(response, Exception):
            _logger.exception('%r raised exception: %s', receiver, response)
            continue
        elif isinstance(response, (tuple, list)) and response:
            user = response[0]
            if len(response) > 1:
                priority = response[1]
        elif response or response in (None, False):
            user = response
        else:
            _logger.error('%r returned invalid response: %r', receiver,
                          response)
            continue
        if user is not False:
            if priority > top_priority:
                top_priority = priority
                top_user = user
    return top_user
Пример #2
0
def get_current_user(_return_false=False):
    """
    Return the user associated with the current request thread.
    """
    from crum.signals import current_user_getter
    top_priority = -9999
    top_user = False if _return_false else None
    results = current_user_getter.send_robust(get_current_user)
    for receiver, response in results:
        priority = 0
        if isinstance(response, Exception):
            _logger.exception('%r raised exception: %s', receiver, response)
            continue
        elif isinstance(response, (tuple, list)) and response:
            user = response[0]
            if len(response) > 1:
                priority = response[1]
        elif response or response in (None, False):
            user = response
        else:
            _logger.error('%r returned invalid response: %r', receiver,
                          response)
            continue
        if user is not False:
            if priority > top_priority:
                top_priority = priority
                top_user = user
    return top_user