12345678910111213141516171819202122232425262728293031323334 |
- # Copyright (C) 2012-2023 Zammad Foundation, https://zammad-foundation.org/
- module HasAgentAllowedParams
- extend ActiveSupport::Concern
- class_methods do
- def agent_allowed_params
- agent_allowed_attributes + agent_allowed_nested_relations
- end
- private
- def agent_allowed_attributes
- attrs = const_defined?(:AGENT_ALLOWED_ATTRIBUTES) ? const_get(:AGENT_ALLOWED_ATTRIBUTES) : []
- [:id] + attrs
- end
- def agent_allowed_nested_relations
- return [] if !const_defined?(:AGENT_ALLOWED_NESTED_RELATIONS)
- const_get(:AGENT_ALLOWED_NESTED_RELATIONS).map do |relation_identifier|
- key = :"#{relation_identifier}_attributes"
- value = reflect_on_association(relation_identifier).klass.agent_allowed_params
- if reflect_on_association(relation_identifier).is_a? ActiveRecord::Reflection::HasManyReflection
- value << :_destroy
- end
- { key => value }
- end
- end
- end
- end
|