code: def is_permitted(self, identifiers, permission_s, log_results=True):
          
          self.assert_realms_configured()
  
          results = collections.defaultdict(bool)  # defaults to False
  
          is_permitted_results = self._is_permitted(identifiers, permission_s)
  
          for permission, is_permitted in is_permitted_results:
              # permit expected format is: (Permission, Boolean)
              # As long as one realm returns True for a Permission, that Permission
              # is granted.  Given that (True or False == True), assign accordingly:
              results[permission] = results[permission] or is_permitted
  
          if log_results:
              self.notify_event(identifiers,
                                list(results.items()),
                                'AUTHORIZATION.RESULTS')
  
          results = set(results.items())
          return results
docs: Yosai differs from Shiro in how it handles String-typed Permission
          parameters.  Rather than supporting *args of String-typed Permissions,
          Yosai supports a list of Strings.  Yosai remains true to Shiro's API
          while determining permissions a bit more pythonically.  This may
          be refactored later.
  
          :param identifiers: a collection of identifiers
          :type identifiers:  subject_abcs.IdentifierCollection
  
          :param permission_s: a collection of 1..N permissions
          :type permission_s: List of permission string(s)
  
          :param log_results:  states whether to log results (True) or allow the
                               calling method to do so instead (False)
          :type log_results:  bool
  
          :returns: a set of tuple(s), containing the Permission and a Boolean
                    indicating whether the permission is granted