feat: validate query conditions (#10595)

Query conditions can take in arbitrary values, this can cause SQL
errors. This PR fixes it
This commit is contained in:
Shivam Mishra
2024-12-17 17:16:37 +05:30
committed by GitHub
parent e3109dbb22
commit b34dac7bbe
14 changed files with 119 additions and 1 deletions

View File

@@ -15,7 +15,7 @@ class AutomationRules::ConditionValidationService
def perform
@rule.conditions.each do |condition|
return false unless valid_condition?(condition)
return false unless valid_condition?(condition) && valid_query_operator?(condition)
end
true
@@ -23,6 +23,15 @@ class AutomationRules::ConditionValidationService
private
def valid_query_operator?(condition)
query_operator = condition['query_operator']
return true if query_operator.nil?
return true if query_operator.empty?
%w[AND OR].include?(query_operator.upcase)
end
def valid_condition?(condition)
key = condition['attribute_key']