Note that this will work only at the top or specified level if the user doesn't have permissions via inheritance in sharepoint.
If a user doesn't have permission at a top level site (parent) although they have permission in a subsite (child), the child will not get returned by this method.
Since the user doesn't have permission at the top level, it is hidden from the current user's context and therefore doesn't get queried by this method.