Since methods of this class are start with user_has_, I would expect  them to return a bool rather than a queryset.

I would suggest either:
* return self.with_user(user).filter(this_site | all_sites).exists()
* rename methods to get_user_permission