code: def can_with_record(self, user, action, record: DataRecord, *, available=None):
          
          assert action not in (A.QUERY, A.CREATE), "meaningless action check with record: [%s]" % action
  
          # 先行匹配规则适用范围
          rules = []
          for rule in self.record_checks:
              if record.table == rule[0] and action in rule[1]:
                  rules.append(rule)
  
          # 逐个过检查
          if available is None: available = self.can_with_columns(user, action, record.table, record.keys())
          else: available = list(available)
          bak = available.copy()
  
          for rule in rules:
              ret = rule[-1](self, user, action, record, available)
              if isinstance(ret, (tuple, set, list)):
                  available = list(ret)
              elif ret == '*':
                  available = list(bak)
              elif not ret:
                  available = []
  
          return available
docs: 进行基于 Record 的权限判定，返回可用列。
          :param user:
          :param action:
          :param record:
          :param available: 限定检查范围
          :return: 可用列