def get_user(request):
    """
    Returns a cached copy of the user if it exists or calls `auth_get_user`
    otherwise.
    """
    if not hasattr(request, '_cached_user'):
        request._cached_user = auth_get_user(request)
    return request._cached_user