code: async def check_permission(self, identity, permission):
          
          await self.check_authorized(identity)
          allowed = await self.can(identity, permission)
          if not allowed:
              raise ForbiddenError()
docs: Works like :func:`Security.can`, but when check is failed
          :func:`ForbiddenError` exception is raised.
  
          :param identity: Claim
          :param permission: Permission
          :return: Checked claim
          :raise: :func:`ForbiddenError`