diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/application.rb | 72 | ||||
-rw-r--r-- | config/boot.rb | 137 | ||||
-rw-r--r-- | config/environment.rb | 165 | ||||
-rw-r--r-- | config/environments/development.rb | 48 | ||||
-rw-r--r-- | config/environments/production.rb | 32 | ||||
-rw-r--r-- | config/environments/staging.rb | 30 | ||||
-rw-r--r-- | config/environments/test.rb | 40 | ||||
-rw-r--r-- | config/general.yml-example | 4 | ||||
-rw-r--r-- | config/initializers/alaveteli.rb | 88 | ||||
-rw-r--r-- | config/initializers/backtrace_silencers.rb | 7 | ||||
-rw-r--r-- | config/initializers/fast_gettext.rb | 2 | ||||
-rw-r--r-- | config/initializers/gettext_i18n_rails.rb | 3 | ||||
-rw-r--r-- | config/initializers/inflections.rb | 10 | ||||
-rw-r--r-- | config/initializers/mime_types.rb | 5 | ||||
-rw-r--r-- | config/initializers/secret_token.rb | 7 | ||||
-rw-r--r-- | config/initializers/session_store.rb | 17 | ||||
-rw-r--r-- | config/packages | 2 |
17 files changed, 288 insertions, 381 deletions
diff --git a/config/application.rb b/config/application.rb new file mode 100644 index 000000000..0e02e9e03 --- /dev/null +++ b/config/application.rb @@ -0,0 +1,72 @@ +require File.expand_path('../boot', __FILE__) + +require 'rails/all' + +require File.dirname(__FILE__) + '/../lib/configuration' + +# If you have a Gemfile, require the gems listed there, including any gems +# you've limited to :test, :development, or :production. +Bundler.require(:default, Rails.env) if defined?(Bundler) + +module Alaveteli + class Application < Rails::Application + # Settings in config/environments/* take precedence over those specified here. + # Application configuration should go into files in config/initializers + # -- all .rb files in that directory are automatically loaded. + + # Custom directories with classes and modules you want to be autoloadable. + # config.autoload_paths += %W(#{config.root}/extras) + + # Only load the plugins named here, in the order given (default is alphabetical). + # :all can be used as a placeholder for all plugins not explicitly named. + # config.plugins = [ :exception_notification, :ssl_requirement, :all ] + + # Activate observers that should always be running. + # config.active_record.observers = :cacher, :garbage_collector, :forum_observer + + # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. + # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. + # config.time_zone = 'Central Time (US & Canada)' + + # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. + # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] + # config.i18n.default_locale = :de + + # JavaScript files you want as :defaults (application.js is always included). + # config.action_view.javascript_expansions[:defaults] = %w(jquery rails) + + # Configure the default encoding used in templates for Ruby 1.9. + config.encoding = "utf-8" + + # Configure sensitive parameters which will be filtered from the log file. + config.filter_parameters += [:password] + + # Use SQL instead of Active Record's schema dumper when creating the test database. + # This is necessary if your schema can't be completely dumped by the schema dumper, + # like if you have constraints or database-specific column types + config.active_record.schema_format = :sql + + # Make Active Record use UTC-base instead of local time + config.active_record.default_timezone = :utc + + # This is the timezone that times and dates are displayed in + # Note that having set a zone, the Active Record + # time_zone_aware_attributes flag is on, so times from models + # will be in this time zone + config.time_zone = ::Configuration::time_zone + + config.after_initialize do + require 'routing_filters.rb' + end + + config.autoload_paths << "#{Rails.root.to_s}/lib/mail_handler" + + # See Rails::Configuration for more options + ENV['RECAPTCHA_PUBLIC_KEY'] = ::Configuration::recaptcha_public_key + ENV['RECAPTCHA_PRIVATE_KEY'] = ::Configuration::recaptcha_private_key + + # Insert a bit of middleware code to prevent uneeded cookie setting. + require "#{Rails.root}/lib/whatdotheyknow/strip_empty_sessions" + config.middleware.insert_before ActionDispatch::Session::CookieStore, WhatDoTheyKnow::StripEmptySessions, :key => '_wdtk_cookie_session', :path => "/", :httponly => true + end +end diff --git a/config/boot.rb b/config/boot.rb index 906a2bace..4489e5868 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -1,135 +1,6 @@ -# Don't change this file! -# Configure your app in config/environment.rb and config/environments/*.rb +require 'rubygems' -# Hmmm, that's a bit daft - 'production' needs setting not only in the web -# server, it also needs setting in all the scripts, so a central place seems -# better. Look for a config/rails_env file, and read stuff from there if -# it exists. Put just a line like this in there: -# ENV['RAILS_ENV'] = 'production' -rails_env_file = File.expand_path(File.join(File.dirname(__FILE__), 'rails_env.rb')) -if File.exists?(rails_env_file) - require rails_env_file -end - -RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT) - -module Rails - class << self - def boot! - unless booted? - preinitialize - pick_boot.run - end - end - - def booted? - defined? Rails::Initializer - end - - def pick_boot - (vendor_rails? ? VendorBoot : GemBoot).new - end - - def vendor_rails? - File.exist?("#{RAILS_ROOT}/vendor/rails/Rakefile") - end - - def preinitialize - load(preinitializer_path) if File.exist?(preinitializer_path) - end - - def preinitializer_path - "#{RAILS_ROOT}/config/preinitializer.rb" - end - end - - class Boot - def run - load_initializer - - Rails::Initializer.class_eval do - def load_gems - @bundler_loaded ||= Bundler.require :default, Rails.env - end - end - - Rails::Initializer.run(:set_load_path) - end - end - - class VendorBoot < Boot - def load_initializer - require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer" - Rails::Initializer.run(:install_gem_spec_stubs) - Rails::GemDependency.add_frozen_gem_path - end - end - - class GemBoot < Boot - def load_initializer - self.class.load_rubygems - load_rails_gem - require 'initializer' - end - - def load_rails_gem - if version = self.class.gem_version - gem 'rails', version - else - gem 'rails' - end - rescue Gem::LoadError => load_error - if load_error.message =~ /Could not find RubyGem rails/ - STDERR.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.) - exit 1 - else - raise - end - end - - class << self - def rubygems_version - Gem::RubyGemsVersion rescue nil - end - - def gem_version - if defined? RAILS_GEM_VERSION - RAILS_GEM_VERSION - elsif ENV.include?('RAILS_GEM_VERSION') - ENV['RAILS_GEM_VERSION'] - else - parse_gem_version(read_environment_rb) - end - end - - def load_rubygems - min_version = '1.3.2' - require 'rubygems' - - unless rubygems_version >= min_version - $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.) - exit 1 - end - - rescue LoadError - $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org) - exit 1 - end - - def parse_gem_version(text) - $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/ - end - - private - def read_environment_rb - File.read("#{RAILS_ROOT}/config/environment.rb") - end - end - end -end - - - -# All that for this: -Rails.boot! +# Set up gems listed in the Gemfile. +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE']) diff --git a/config/environment.rb b/config/environment.rb index e79efdcfa..196680b23 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -1,162 +1,5 @@ -# Be sure to restart your web server when you modify this file. -if RUBY_VERSION.to_f >= 1.9 - # the default encoding for IO is utf-8, and we use utf-8 internally - Encoding.default_external = Encoding.default_internal = Encoding::UTF_8 - # Suppress warning messages and require inflector to avoid iconv deprecation message - # "iconv will be deprecated in the future, use String#encode instead." when loading - # it as part of rails - original_verbose, $VERBOSE = $VERBOSE, nil - require 'active_support/inflector' - # Activate warning messages again. - $VERBOSE = original_verbose -end +# Load the rails application +require File.expand_path('../application', __FILE__) -# Uncomment below to force Rails into production mode when -# you don't control web/app server and can't set it the proper way -# ENV['RAILS_ENV'] ||= 'production' - -# Specifies gem version of Rails to use when vendor/rails is not present -RAILS_GEM_VERSION = '2.3.14' unless defined? RAILS_GEM_VERSION - -# Bootstrap the Rails environment, frameworks, and default configuration -require File.join(File.dirname(__FILE__), 'boot') - -# MySociety specific helper functions -$:.push(File.join(File.dirname(__FILE__), '../commonlib/rblib')) -# ... if these fail to include, you need the commonlib submodule from git -# (type "git submodule update --init" in the whatdotheyknow directory) - -$:.unshift(File.join(File.dirname(__FILE__), '../vendor/plugins/globalize2/lib')) - -load "validate.rb" -load "config.rb" -load "format.rb" -load "debug_helpers.rb" -load "util.rb" -# Patch Rails::GemDependency to cope with older versions of rubygems, e.g. in Debian Lenny -# Restores override removed in https://github.com/rails/rails/commit/c20a4d18e36a13b5eea3155beba36bb582c0cc87 -# without effecting method behaviour -# and adds fallback gem call removed in https://github.com/rails/rails/commit/4c3725723f15fab0a424cb1318b82b460714b72f -require File.join(File.dirname(__FILE__), '../lib/old_rubygems_patch') -require 'configuration' - -# Application version -ALAVETELI_VERSION = '0.6.8' - -Rails::Initializer.run do |config| - # Load intial mySociety config - if ENV["RAILS_ENV"] == "test" - MySociety::Config.set_file(File.join(config.root_path, 'config', 'test'), true) - else - MySociety::Config.set_file(File.join(config.root_path, 'config', 'general'), true) - end - MySociety::Config.load_default - - # Settings in config/environments/* take precedence over those specified here - - # Skip frameworks you're not going to use (only works if using vendor/rails) - # config.frameworks -= [ :action_web_service, :action_mailer ] - - # Only load the plugins named here, by default all plugins in vendor/plugins are loaded - # config.plugins = %W( exception_notification ssl_requirement ) - - # Add additional load paths for your own custom dirs - # config.load_paths += %W( #{Rails.root}/extras ) - - # Force all environments to use the same logger level - # (by default production uses :info, the others :debug) - # TEMP: uncomment this to turn on logging in production environments - # config.log_level = :debug - # - # Specify gems that this application depends on and have them installed with rake gems:install - #GettextI18nRails.translations_are_html_safe = true - - # Use SQL instead of Active Record's schema dumper when creating the test database. - # This is necessary if your schema can't be completely dumped by the schema dumper, - # like if you have constraints or database-specific column types - config.active_record.schema_format = :sql - - # Activate observers that should always be running - # config.active_record.observers = :cacher, :garbage_collector - - # Make Active Record use UTC-base instead of local time - config.active_record.default_timezone = :utc - - # This is the timezone that times and dates are displayed in - # Note that having set a zone, the Active Record - # time_zone_aware_attributes flag is on, so times from models - # will be in this time zone - config.time_zone = Configuration::time_zone - - config.after_initialize do - require 'routing_filters.rb' - end - - config.autoload_paths << "#{RAILS_ROOT}/lib/mail_handler" - - # See Rails::Configuration for more options - ENV['RECAPTCHA_PUBLIC_KEY'] = Configuration::recaptcha_public_key - ENV['RECAPTCHA_PRIVATE_KEY'] = Configuration::recaptcha_private_key -end - -# Add new inflection rules using the following format -# (all these examples are active by default): -# Inflector.inflections do |inflect| -# inflect.plural /^(ox)$/i, '\1en' -# inflect.singular /^(ox)en/i, '\1' -# inflect.irregular 'person', 'people' -# inflect.uncountable %w( fish sheep ) -# end - -# Add new mime types for use in respond_to blocks: -# Mime::Type.register "text/richtext", :rtf -# Mime::Type.register "application/x-mobile", :mobile - -# The Rails cache is set up by the Interlock plugin to use memcached - -# Domain for URLs (so can work for scripts, not just web pages) -ActionMailer::Base.default_url_options[:host] = Configuration::domain - -# So that javascript assets use full URL, so proxied admin URLs read javascript OK -if (Configuration::domain != "") - ActionController::Base.asset_host = Proc.new { |source, request| - if ENV["RAILS_ENV"] != "test" && request.fullpath.match(/^\/admin\//) - Configuration::admin_public_url - else - Configuration::domain - end - } -end - -# fallback locale and available locales -available_locales = Configuration::available_locales.split(/ /) -default_locale = Configuration::default_locale - -FastGettext.default_available_locales = available_locales -I18n.locale = default_locale -I18n.available_locales = available_locales.map {|locale_name| locale_name.to_sym} -I18n.default_locale = default_locale - -# Customise will_paginate URL generation -WillPaginate::ViewHelpers.pagination_options[:renderer] = 'WillPaginateExtension::LinkRenderer' - -# Load monkey patches and other things from lib/ -require 'ruby19.rb' -require 'activesupport_cache_extensions.rb' -require 'timezone_fixes.rb' -require 'use_spans_for_errors.rb' -require 'make_html_4_compliant.rb' -require 'activerecord_errors_extensions.rb' -require 'willpaginate_extension.rb' -require 'sendmail_return_path.rb' -require 'i18n_fixes.rb' -require 'rack_quote_monkeypatch.rb' -require 'world_foi_websites.rb' -require 'alaveteli_external_command.rb' -require 'quiet_opener.rb' -require 'mail_handler' - -if !Configuration.exception_notifications_from.blank? && !Configuration.exception_notifications_to.blank? - ExceptionNotification::Notifier.sender_address = Configuration::exception_notifications_from - ExceptionNotification::Notifier.exception_recipients = Configuration::exception_notifications_to -end +# Initialize the rails application +Alaveteli::Application.initialize! diff --git a/config/environments/development.rb b/config/environments/development.rb index c43cdb049..5b91c3271 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -1,29 +1,31 @@ -# Settings specified here will take precedence over those in config/environment.rb +Alaveteli::Application.configure do + # Settings specified here will take precedence over those in config/environment.rb -config.log_level = :info + # In the development environment your application's code is reloaded on + # every request. This slows down response time but is perfect for development + # since you don't have to restart the webserver when you make code changes. + config.cache_classes = false -# In the development environment your application's code is reloaded on -# every request. This slows down response time but is perfect for development -# since you don't have to restart the webserver when you make code changes. -config.cache_classes = false + # Log error messages when you accidentally call methods on nil. + config.whiny_nils = true -# Log error messages when you accidentally call methods on nil. -config.whiny_nils = true + # Show full error reports and disable caching + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + config.action_view.debug_rjs = true -# Show full error reports and disable caching -config.action_controller.consider_all_requests_local = true -config.action_controller.perform_caching = false -config.action_view.debug_rjs = true + # Don't care if the mailer can't send + config.action_mailer.raise_delivery_errors = false + config.action_mailer.perform_deliveries = true + # Use mailcatcher in development + config.action_mailer.delivery_method = :smtp # so is queued, rather than giving immediate errors + config.action_mailer.smtp_settings = { :address => "localhost", :port => 1025 } -# Don't care if the mailer can't send -config.action_mailer.raise_delivery_errors = false -config.action_mailer.perform_deliveries = true -# Use mailcatcher in development -config.action_mailer.delivery_method = :smtp # so is queued, rather than giving immediate errors -config.action_mailer.smtp_settings = { :address => "localhost", :port => 1025 } + # Writes useful log files to debug memory leaks, of the sort where have + # unintentionally kept references to objects, especially strings. + # require 'memory_profiler' + # MemoryProfiler.start :string_debug => true, :delay => 10 - -# Writes useful log files to debug memory leaks, of the sort where have -# unintentionally kept references to objects, especially strings. -# require 'memory_profiler' -# MemoryProfiler.start :string_debug => true, :delay => 10 + # Print deprecation notices to the Rails logger + config.active_support.deprecation = :log +end diff --git a/config/environments/production.rb b/config/environments/production.rb index 84a8f5965..ac4a2ccb6 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -1,19 +1,23 @@ -# Settings specified here will take precedence over those in config/environment.rb +Alaveteli::Application.configure do + # Settings specified here will take precedence over those in config/environment.rb -# The production environment is meant for finished, "live" apps. -# Code is not reloaded between requests -config.cache_classes = true + # The production environment is meant for finished, "live" apps. + # Code is not reloaded between requests + config.cache_classes = true -# Use a different logger for distributed setups -# config.logger = SyslogLogger.new + # Use a different logger for distributed setups + # config.logger = SyslogLogger.new -# Full error reports are disabled and caching is turned on -config.action_controller.consider_all_requests_local = false -config.action_controller.perform_caching = true + # Full error reports are disabled and caching is turned on + config.consider_all_requests_local = false + config.action_controller.perform_caching = true -# Enable serving of images, stylesheets, and javascripts from an asset server -# config.action_controller.asset_host = "http://assets.example.com" + # Enable serving of images, stylesheets, and javascripts from an asset server + # config.action_controller.asset_host = "http://assets.example.com" -# Disable delivery errors, bad email addresses will be ignored -# config.action_mailer.raise_delivery_errors = false -config.action_mailer.delivery_method = :sendmail # so is queued, rather than giving immediate errors + # Disable delivery errors, bad email addresses will be ignored + # config.action_mailer.raise_delivery_errors = false + config.action_mailer.delivery_method = :sendmail # so is queued, rather than giving immediate errors + + config.active_support.deprecation = :notify +end diff --git a/config/environments/staging.rb b/config/environments/staging.rb index 84a8f5965..0bb0db71a 100644 --- a/config/environments/staging.rb +++ b/config/environments/staging.rb @@ -1,19 +1,21 @@ -# Settings specified here will take precedence over those in config/environment.rb +Alaveteli::Application.configure do + # Settings specified here will take precedence over those in config/environment.rb -# The production environment is meant for finished, "live" apps. -# Code is not reloaded between requests -config.cache_classes = true + # The production environment is meant for finished, "live" apps. + # Code is not reloaded between requests + config.cache_classes = true -# Use a different logger for distributed setups -# config.logger = SyslogLogger.new + # Use a different logger for distributed setups + # config.logger = SyslogLogger.new -# Full error reports are disabled and caching is turned on -config.action_controller.consider_all_requests_local = false -config.action_controller.perform_caching = true + # Full error reports are disabled and caching is turned on + config.action_controller.consider_all_requests_local = false + config.action_controller.perform_caching = true -# Enable serving of images, stylesheets, and javascripts from an asset server -# config.action_controller.asset_host = "http://assets.example.com" + # Enable serving of images, stylesheets, and javascripts from an asset server + # config.action_controller.asset_host = "http://assets.example.com" -# Disable delivery errors, bad email addresses will be ignored -# config.action_mailer.raise_delivery_errors = false -config.action_mailer.delivery_method = :sendmail # so is queued, rather than giving immediate errors + # Disable delivery errors, bad email addresses will be ignored + # config.action_mailer.raise_delivery_errors = false + config.action_mailer.delivery_method = :sendmail # so is queued, rather than giving immediate errors +end diff --git a/config/environments/test.rb b/config/environments/test.rb index 784ea18d3..c569af8cd 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -1,25 +1,29 @@ -# Settings specified here will take precedence over those in config/environment.rb +Alaveteli::Application.configure do + # Settings specified here will take precedence over those in config/environment.rb -require 'patches/fixtures_constraint_disabling' + require 'patches/fixtures_constraint_disabling' -# The test environment is used exclusively to run your application's -# test suite. You never need to work with it otherwise. Remember that -# your test database is "scratch space" for the test suite and is wiped -# and recreated between test runs. Don't rely on the data there! -config.cache_classes = true + # The test environment is used exclusively to run your application's + # test suite. You never need to work with it otherwise. Remember that + # your test database is "scratch space" for the test suite and is wiped + # and recreated between test runs. Don't rely on the data there! + config.cache_classes = true -# Log error messages when you accidentally call methods on nil. -config.whiny_nils = true + # Log error messages when you accidentally call methods on nil. + config.whiny_nils = true -# Show full error reports and disable caching -config.action_controller.consider_all_requests_local = true -config.action_controller.perform_caching = false + # Show full error reports and disable caching + config.consider_all_requests_local = true + config.action_controller.perform_caching = false -# Tell ActionMailer not to deliver emails to the real world. -# The :test delivery method accumulates sent emails in the -# ActionMailer::Base.deliveries array. -config.action_mailer.delivery_method = :test + # Tell ActionMailer not to deliver emails to the real world. + # The :test delivery method accumulates sent emails in the + # ActionMailer::Base.deliveries array. + config.action_mailer.delivery_method = :test -# Disable request forgery protection in test environment -config.action_controller.allow_forgery_protection = false + # Disable request forgery protection in test environment + config.action_controller.allow_forgery_protection = false + # Print deprecation notices to the stderr + config.active_support.deprecation = :stderr +end diff --git a/config/general.yml-example b/config/general.yml-example index fd134b0c2..bfe289541 100644 --- a/config/general.yml-example +++ b/config/general.yml-example @@ -32,6 +32,10 @@ AVAILABLE_LOCALES: 'en es' DEFAULT_LOCALE: 'en' USE_DEFAULT_BROWSER_LANGUAGE: true +# If you don't want the default locale to be included in URLs generated +# by the application, set this to false +INCLUDE_DEFAULT_LOCALE_IN_URLS: true + # How many days should have passed before an answer to a request is officially late? REPLY_LATE_AFTER_DAYS: 20 REPLY_VERY_LATE_AFTER_DAYS: 40 diff --git a/config/initializers/alaveteli.rb b/config/initializers/alaveteli.rb new file mode 100644 index 000000000..349934ef4 --- /dev/null +++ b/config/initializers/alaveteli.rb @@ -0,0 +1,88 @@ +if RUBY_VERSION.to_f >= 1.9 + # the default encoding for IO is utf-8, and we use utf-8 internally + Encoding.default_external = Encoding.default_internal = Encoding::UTF_8 + # Suppress warning messages and require inflector to avoid iconv deprecation message + # "iconv will be deprecated in the future, use String#encode instead." when loading + # it as part of rails + original_verbose, $VERBOSE = $VERBOSE, nil + require 'active_support/inflector' + # Activate warning messages again. + $VERBOSE = original_verbose +end + +# MySociety specific helper functions +$:.push(File.join(File.dirname(__FILE__), '../../commonlib/rblib')) +# ... if these fail to include, you need the commonlib submodule from git +# (type "git submodule update --init" in the whatdotheyknow directory) + +load "validate.rb" +load "config.rb" +load "format.rb" +load "debug_helpers.rb" +load "util.rb" + +# Application version +ALAVETELI_VERSION = '0.6.8' + +# Add new inflection rules using the following format +# (all these examples are active by default): +# Inflector.inflections do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end + +# Add new mime types for use in respond_to blocks: +# Mime::Type.register "text/richtext", :rtf +# Mime::Type.register "application/x-mobile", :mobile + +# The Rails cache is set up by the Interlock plugin to use memcached + +# Domain for URLs (so can work for scripts, not just web pages) +ActionMailer::Base.default_url_options[:host] = Configuration::domain + +# So that javascript assets use full URL, so proxied admin URLs read javascript OK +if (Configuration::domain != "") + ActionController::Base.asset_host = Proc.new { |source, request| + if ENV["RAILS_ENV"] != "test" && request.fullpath.match(/^\/admin\//) + Configuration::admin_public_url + else + Configuration::domain + end + } +end + +# fallback locale and available locales +available_locales = Configuration::available_locales.split(/ /) +default_locale = Configuration::default_locale + +FastGettext.default_available_locales = available_locales +I18n.locale = default_locale +I18n.available_locales = available_locales.map {|locale_name| locale_name.to_sym} +I18n.default_locale = default_locale + +# Customise will_paginate URL generation +WillPaginate::ViewHelpers.pagination_options[:renderer] = 'WillPaginateExtension::LinkRenderer' + +# Load monkey patches and other things from lib/ +require 'ruby19.rb' +require 'activesupport_cache_extensions.rb' +require 'timezone_fixes.rb' +require 'use_spans_for_errors.rb' +require 'make_html_4_compliant.rb' +require 'activerecord_errors_extensions.rb' +require 'willpaginate_extension.rb' +require 'sendmail_return_path.rb' +require 'i18n_fixes.rb' +require 'rack_quote_monkeypatch.rb' +require 'world_foi_websites.rb' +require 'alaveteli_external_command.rb' +require 'quiet_opener.rb' +require 'mail_handler' +require 'public_body_categories' + +if !Configuration.exception_notifications_from.blank? && !Configuration.exception_notifications_to.blank? + ExceptionNotification::Notifier.sender_address = Configuration::exception_notifications_from + ExceptionNotification::Notifier.exception_recipients = Configuration::exception_notifications_to +end diff --git a/config/initializers/backtrace_silencers.rb b/config/initializers/backtrace_silencers.rb new file mode 100644 index 000000000..59385cdf3 --- /dev/null +++ b/config/initializers/backtrace_silencers.rb @@ -0,0 +1,7 @@ +# Be sure to restart your server when you modify this file. + +# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. +# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } + +# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. +# Rails.backtrace_cleaner.remove_silencers! diff --git a/config/initializers/fast_gettext.rb b/config/initializers/fast_gettext.rb index 2ecf5cb5d..1cd6440e4 100644 --- a/config/initializers/fast_gettext.rb +++ b/config/initializers/fast_gettext.rb @@ -3,4 +3,4 @@ FastGettext.default_text_domain = 'app' I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks) - +RoutingFilter::Locale.include_default_locale = Configuration::include_default_locale_in_urls
\ No newline at end of file diff --git a/config/initializers/gettext_i18n_rails.rb b/config/initializers/gettext_i18n_rails.rb new file mode 100644 index 000000000..ef306682b --- /dev/null +++ b/config/initializers/gettext_i18n_rails.rb @@ -0,0 +1,3 @@ +# FIXME: Audit the translations for XSS opportunities. Ultimately it would be +# good to get rid of this and explicitly mark strings as html_safe +GettextI18nRails.translations_are_html_safe = true diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb new file mode 100644 index 000000000..9e8b0131f --- /dev/null +++ b/config/initializers/inflections.rb @@ -0,0 +1,10 @@ +# Be sure to restart your server when you modify this file. + +# Add new inflection rules using the following format +# (all these examples are active by default): +# ActiveSupport::Inflector.inflections do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end diff --git a/config/initializers/mime_types.rb b/config/initializers/mime_types.rb new file mode 100644 index 000000000..72aca7e44 --- /dev/null +++ b/config/initializers/mime_types.rb @@ -0,0 +1,5 @@ +# Be sure to restart your server when you modify this file. + +# Add new mime types for use in respond_to blocks: +# Mime::Type.register "text/richtext", :rtf +# Mime::Type.register_alias "text/html", :iphone diff --git a/config/initializers/secret_token.rb b/config/initializers/secret_token.rb new file mode 100644 index 000000000..5277e8927 --- /dev/null +++ b/config/initializers/secret_token.rb @@ -0,0 +1,7 @@ +# Be sure to restart your server when you modify this file. + +# Your secret key for verifying the integrity of signed cookies. +# If you change this key, all old signed cookies will become invalid! +# Make sure the secret is at least 30 characters and all random, +# no regular words or you'll be exposed to dictionary attacks. +Alaveteli::Application.config.secret_token = Configuration::cookie_store_session_secret diff --git a/config/initializers/session_store.rb b/config/initializers/session_store.rb index 8cfa333f2..ca283d4e0 100644 --- a/config/initializers/session_store.rb +++ b/config/initializers/session_store.rb @@ -1,17 +1,2 @@ # Be sure to restart your server when you modify this file. - -# Your secret key for verifying cookie session data integrity. -# If you change this key, all old sessions will become invalid! -# Make sure the secret is at least 30 characters and all random, -# no regular words or you'll be exposed to dictionary attacks. - -ActionController::Base.session = { - :key => '_wdtk_cookie_session', - :secret => Configuration::cookie_store_session_secret -} -ActionController::Base.session_store = :cookie_store - -# Insert a bit of middleware code to prevent uneeded cookie setting. -require "#{Rails.root}/lib/whatdotheyknow/strip_empty_sessions" -ActionController::Dispatcher.middleware.insert_before ActionController::Base.session_store, WhatDoTheyKnow::StripEmptySessions, :key => '_wdtk_cookie_session', :path => "/", :httponly => true - +Rails.application.config.session_store :cookie_store, :key => '_wdtk_cookie_session' diff --git a/config/packages b/config/packages index ded8dc9a5..775a55e38 100644 --- a/config/packages +++ b/config/packages @@ -33,7 +33,7 @@ libpq-dev uuid-dev ruby1.8-dev rubygems -rake +rake (>= 0.9.2.2) build-essential bundler sqlite3 |