docs: def is_access_granted(self, agreement_id, did, consumer_address):
          """
          Check permission for the agreement.
  
          Verify on-chain that the `consumer_address` has permission to access the given asset `did`
          according to the `agreement_id`.
  
          :param agreement_id: id of the agreement, hex str
          :param did: DID, str
          :param consumer_address: ethereum account address of consumer, hex str
          :return: bool True if user has permission
          """
          agreement_consumer = self._keeper.escrow_access_secretstore_template.get_agreement_consumer(
              agreement_id)
          if agreement_consumer != consumer_address:
              logger.warning(f'Invalid consumer address {consumer_address} and/or '
                             f'service agreement id {agreement_id} (did {did})'
                             f', agreement consumer is {agreement_consumer}')
              return False
  
          document_id = did_to_id(did)
          return self._keeper.access_secret_store_condition.check_permissions(
              document_id, consumer_address
          )