application_config.rb 871 B

123456789101112131415161718192021222324252627282930
  1. # Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
  2. module Gql::Queries
  3. class ApplicationConfig < BaseQuery
  4. def self.requires_authentication?
  5. false
  6. end
  7. description 'Configuration required for front end operation (more results returned for authenticated users)'
  8. type [Gql::Types::KeyComplexValueType, { null: false }], null: false
  9. # Reimplemented from sessions_controller#config_frontend.
  10. def resolve(...)
  11. result = []
  12. unauthenticated = context[:current_user].nil?
  13. Setting.select('name, preferences').where(frontend: true).each do |setting|
  14. next if setting.preferences[:authentication] && unauthenticated
  15. value = Setting.get(setting.name)
  16. next if unauthenticated && !value
  17. result << { key: setting.name, value: value }
  18. end
  19. result
  20. end
  21. end
  22. end