@abstractmethod<EOL><INDENT>def check_permission(self, identifiers, permission_s, logical_operator):<DEDENT>
pass<EOL>
This method determines whether the requested Permission(s) are
collectively granted authorization.  The Permission(s) associated with
the subject are evaluated to determine whether authorization is implied
for each Permission requested.  Results are collectively evaluated using
the logical operation provided: either ANY or ALL.

This method is similar to is_permitted_collective except that it raises
an AuthorizationException if collectively False else does not return any
value.

:param identifiers: the application-specific subject/user identifiers(s)
:type identifiers: subject_abcs.IdentifierCollection

:param permission_s: a collection of 1..N permissions, all of the same type
:type permission_s: List of authz_abcs.Permission object(s) or String(s)

:param logical_operator:  any or all
:type logical_operator:  function  (stdlib)

:raises  AuthorizationException:  if the user does not have sufficient
                                  permission