Filter parameters in config, not application controller
[gitorious:mainline.git] / config / application.rb
1 # encoding: utf-8
2 #--
3 #   Copyright (C) 2012 Gitorious AS
4 #
5 #   This program is free software: you can redistribute it and/or modify
6 #   it under the terms of the GNU Affero General Public License as published by
7 #   the Free Software Foundation, either version 3 of the License, or
8 #   (at your option) any later version.
9 #
10 #   This program is distributed in the hope that it will be useful,
11 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 #   GNU Affero General Public License for more details.
14 #
15 #   You should have received a copy of the GNU Affero General Public License
16 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 #++
18
19 require File.expand_path('../boot', __FILE__)
20
21 require 'rails/all'
22
23 Bundler.require(:default, Rails.env) if defined?(Bundler)
24
25 class Class
26   def is_indexed(*args, &block)
27   end
28 end
29
30 module Ultrasphinx
31   class Search
32     def initialize(options = {})
33     end
34
35     def self.query_defaults=(defaults)
36     end
37
38     def self.query_defaults
39       {}
40     end
41
42     def self.excerpting_options=(options)
43     end
44
45     def self.client_options
46       {}
47     end
48   end
49
50   class UsageError < StandardError
51   end
52
53   MAIN_INDEX = 1
54
55   def self.delta_index_present?
56   end
57 end
58
59 module Gitorious
60   class Application < Rails::Application
61     config.autoload_paths += [config.root.join('lib')]
62     config.encoding = 'utf-8'
63     gitorious_yaml = YAML.load_file(Rails.root + "config/gitorious.yml")[Rails.env]
64     raise "Your config/gitorious.yml does not have an entry for your current Rails environment. Please consult config/gitorious.sample.yml for instructions." unless gitorious_yaml
65
66     # Settings in config/environments/* take precedence over those specified here.
67     # Application configuration should go into files in config/initializers
68     # -- all .rb files in that directory are automatically loaded.
69     # See Rails::Configuration for more options.
70
71     # Skip frameworks you're not going to use. To use Rails without a database
72     # you must remove the Active Record framework.
73     # config.frameworks -= [ :active_record, :active_resource, :action_mailer ]
74     config.filter_parameters += [:password, :password_confirmation]
75
76     # Only load the plugins named here, in the order given. By default, all plugins
77     # in vendor/plugins are loaded in alphabetical order.
78     # :all can be used as a placeholder for all plugins not explicitly named
79     # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
80
81     # Add additional load paths for your own custom dirs
82     config.autoload_paths << (Rails.root + "lib/gitorious")
83     config.autoload_paths << (Rails.root + "app")
84
85     # Avoid class cache errors like "A copy of Gitorious::XYZ has been removed
86     # from the module tree but is still active!"
87     config.autoload_once_paths << (Rails.root + "lib/gitorious")
88
89     # Force all environments to use the same logger level
90     # (by default production uses :info, the others :debug)
91     # config.log_level = :debug
92
93     # Make Time.zone default to the specified zone, and make Active Record store time values
94     # in the database in UTC, and return them converted to the specified local zone.
95     # Run "rake -D time" for a list of tasks for finding time zone names. Comment line to use default local time.
96     config.time_zone = 'UTC'
97
98     # The internationalization framework can be changed to have another default locale (standard is :en) or more load paths.
99     # All files from config/locales/*.rb,yml are added automatically.
100     # config.i18n.load_path << Dir[File.join(RAILS_ROOT, 'my', 'locales', '*.{rb,yml}')]
101     # config.i18n.default_locale = :de
102
103     # Your secret key for verifying cookie session data integrity.
104     # If you change this key, all old sessions will become invalid!
105     # Make sure the secret is at least 30 characters and all random,
106     # no regular words or you'll be exposed to dictionary attacks.
107
108     # Use the database for sessions instead of the cookie-based default,
109     # which shouldn't be used to store highly confidential information
110     # (create the session table with "rake db:sessions:create")
111     #config.action_controller.session_store = :active_record_store
112
113     # Use SQL instead of Active Record's schema dumper when creating the test database.
114     # This is necessary if your schema can't be completely dumped by the schema dumper,
115     # like if you have constraints or database-specific column types
116     # config.active_record.schema_format = :sql
117
118     # Activate observers that should always be running
119     # Please note that observers generated using script/generate observer need to have an _observer suffix
120     # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
121
122     # Activate observers that should always be running
123     config.active_record.observers = [
124         :user_observer
125     ]
126
127     config.after_initialize do
128       OAuth::Consumer.class_eval {
129         remove_const(:CA_FILE) if const_defined?(:CA_FILE)
130       }
131
132       OAuth::Consumer::CA_FILE = nil
133       Gitorious::Plugin::post_load
134       Grit::Git.git_binary = GitoriousConfig["git_binary"]
135     end
136
137     gts_config = YAML.load_file(Rails.root + "config/gitorious.yml")[Rails.env]
138
139     Gitorious::Application.config.middleware.use(ExceptionNotifier,
140                                                  :email_prefix => "[Gitorious] ",
141                                                  :sender_address => %{"Exception notifier" <notifier@gitorious>},
142                                                  :exception_recipients => gts_config["exception_notification_emails"])
143   end
144 end