このコミットが含まれているのは:
2026-11-07 15:50:00 +09:00
コミット 9e803d473a
7個のファイルの変更、172行の追加、33行の削除
+3 -10
ファイルの表示
@@ -220,19 +220,12 @@ class CountsTableQuery
private
# Public timeline predicates may include hidden records. Private predicates must
# never become a count oracle, even when the selected axes themselves are public.
# Summary predicates are evaluated against public coordinates or the masked
# value by CountsPopulation. Never accept a private server-only coordinate in
# user-supplied ordering/measure state.
def validate_summary_conditions!
return if mode != 'summary' || HistoryAccess.admin?
fields = QueryState.records(@params, 'conditions') + QueryState.records(@params, 'drill')
private_fields = fields.any? { !CountsAxes::PUBLIC_FIELDS.include?(_1['field']) }
keys = ['tags', 'tag', 'kind', 'resource_id', 'user_id']
private_parameters = keys.any? do |key|
@params.any? { |name, value| (name == key || name.start_with?("#{ key }.")) && value != '' }
end
raise CountsAxes::PrivateCondition if private_fields || private_parameters
['column_order', 'measures'].each do |key|
# Coordinates are compared only to already masked expressions, never raw
# values. Public coordinates remain sortable; a guessed private ID cannot match.