docs: def has_role_collective(self, identifiers, role_s, logical_operator):
          """
          :param identifiers: a collection of identifiers
          :type identifiers:  subject_abcs.IdentifierCollection
  
          :param role_s: a collection of 1..N Role identifiers
          :type role_s: Set of String(s)
  
          :param logical_operator:  indicates whether all or at least one
                                    permission check is true (any)
          :type: any OR all (from python standard library)
  
          :returns: a Boolean
          """
          self.assert_realms_configured()
  
          # interim_results is a set of tuples:
          interim_results = self.has_role(identifiers, role_s, log_results=False)
  
          results = logical_operator(has_role for role, has_role
                                     in interim_results)
  
          if results:
              self.notify_event(identifiers,
                                list(role_s),
                                'AUTHORIZATION.GRANTED',
                                logical_operator)
          else:
              self.notify_event(identifiers,
                                list(role_s),
                                'AUTHORIZATION.DENIED',
                                logical_operator)
  
          return results