application_config.rb 936 B

123456789101112131415161718192021222324252627282930
  1. # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
  2. module Gql::Queries
  3. class ApplicationConfig < BaseQuery
  4. description 'Configuration required for front end operation (more results returned for authenticated users)'
  5. type [Gql::Types::KeyComplexValueType, { null: false }], null: false
  6. def self.authorize(...)
  7. true # This query should be available for all (including unauthenticated) users.
  8. end
  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