Actually, not sure that this belongs in here. It might be better to have a different method (somewhere else) that takes all principal profiles (rather than just the external ones), and validates the visibility access with all of them, while taking into considering the multi-tenant roles.

The "tenant violations" check was actually meant to just check the public / private tenant boundaries.