configs.rb 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
  2. class Sequencer
  3. class Unit
  4. module Import
  5. module Ldap
  6. module Sources
  7. class Configs < Sequencer::Unit::Base
  8. optional :ldap_config
  9. provides :configs
  10. def process
  11. result = []
  12. @ldap_config_set = false
  13. LdapSource.active.find_each do |source|
  14. next if source.preferences.blank?
  15. result << source_config(source)
  16. end
  17. if ldap_config.present? && !@ldap_config_set
  18. result << ldap_config
  19. end
  20. state.provide(:configs, result)
  21. end
  22. def source_config(source)
  23. if ldap_config.present? && ldap_config[:id] == source.id
  24. @ldap_config_set = true
  25. ldap_config
  26. else
  27. source.preferences.merge(id: source.id)
  28. end
  29. end
  30. end
  31. end
  32. end
  33. end
  34. end
  35. end