properly memoize current_user, even if nil