The Smart Search component (com_finder) in the frontend was hardcoded to always use the view access levels from the current user and thus did not allow to override that when using the model in a different context. Since we are already populating the current state of the model with the view access levels of the current user, we might as well use them here directly.
Testing Instructions
Have Smart Search setup correctly and add 2 articles, one for public users, one for registered users with similar content, so that you can have a matching search term in both articles.
Search for the matching term and see that you only get the public article.
Edit components/com_finder/src/Model/SearchModel.php line 489 and replace $user->getAuthorisedViewLevels() with [1,2]. Search again and still only see the public article. Revert the code change.
Apply the patch and search for the term again, again only getting the public article.
Do the changes from step 3 again (the line has moved up a bit) and search again. Now you should get both articles.
Thanks!