Commit 976e1399fad09f4194e3a952d13deffb62038bc8

Authored by Rafael Manzo
1 parent 639cfbc2

environment.rb and application.rb loading looks good

MIGRATION_ISSUES
@@ -8,4 +8,10 @@ @@ -8,4 +8,10 @@
8 8
9 * initializers session_store.rb inflections.rb... don't exist 9 * initializers session_store.rb inflections.rb... don't exist
10 10
11 -* rails gems version have to be forced on Gemfile or it will use incompatible pre3vious versions (3.1.3)  
12 \ No newline at end of file 11 \ No newline at end of file
  12 +* rails gems version have to be forced on Gemfile or it will use incompatible pre3vious versions (3.1.3)
  13 +
  14 +* Sweepers are now natively supported on Rails 3. Would be nice to refactor it
  15 +
  16 +* On Rails 3 it is no more possible to add allowed tags to avoid scape. The html_safe initializer is an option.
  17 +
  18 +* controller_paths are no more supported on Rails 3
13 \ No newline at end of file 19 \ No newline at end of file
config/application.rb
@@ -11,19 +11,47 @@ end @@ -11,19 +11,47 @@ end
11 11
12 module Rails3 12 module Rails3
13 class Application < Rails::Application 13 class Application < Rails::Application
  14 + def noosfero_session_secret
  15 + require 'fileutils'
  16 + target_dir = File.join(File.dirname(__FILE__), '/../tmp')
  17 + FileUtils.mkdir_p(target_dir)
  18 + file = File.join(target_dir, 'session.secret')
  19 + if !File.exists?(file)
  20 + secret = (1..128).map { %w[0 1 2 3 4 5 6 7 8 9 a b c d e f][rand(16)] }.join('')
  21 + File.open(file, 'w') do |f|
  22 + f.puts secret
  23 + end
  24 + end
  25 + File.read(file).strip
  26 + end
  27 +
14 # Settings in config/environments/* take precedence over those specified here. 28 # Settings in config/environments/* take precedence over those specified here.
15 # Application configuration should go into files in config/initializers 29 # Application configuration should go into files in config/initializers
16 # -- all .rb files in that directory are automatically loaded. 30 # -- all .rb files in that directory are automatically loaded.
17 31
18 # Custom directories with classes and modules you want to be autoloadable. 32 # Custom directories with classes and modules you want to be autoloadable.
19 - # config.autoload_paths += %W(#{config.root}/extras) 33 + config.autoload_paths += %W( #{Rails.root}/app/sweepers )
20 34
21 # Only load the plugins named here, in the order given (default is alphabetical). 35 # Only load the plugins named here, in the order given (default is alphabetical).
22 # :all can be used as a placeholder for all plugins not explicitly named. 36 # :all can be used as a placeholder for all plugins not explicitly named.
23 # config.plugins = [ :exception_notification, :ssl_requirement, :all ] 37 # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
24 38
25 # Activate observers that should always be running. 39 # Activate observers that should always be running.
26 - # config.active_record.observers = :cacher, :garbage_collector, :forum_observer 40 + # Sweepers are observers
  41 + # don't load the sweepers while loading the database
  42 + ignore_rake_commands = %w[
  43 + db:schema:load
  44 + gems:install
  45 + clobber
  46 + noosfero:translations:compile
  47 + makemo
  48 + ]
  49 + if $PROGRAM_NAME =~ /rake$/ && (ignore_rake_commands.include?(ARGV.first))
  50 + $NOOSFERO_LOAD_PLUGINS = false
  51 + else
  52 + $NOOSFERO_LOAD_PLUGINS = true
  53 + config.active_record.observers = :article_sweeper, :role_assignment_sweeper, :friendship_sweeper, :category_sweeper, :block_sweeper
  54 + end
27 55
28 # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. 56 # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
29 # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. 57 # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
@@ -31,7 +59,7 @@ module Rails3 @@ -31,7 +59,7 @@ module Rails3
31 59
32 # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. 60 # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
33 # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] 61 # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
34 - # config.i18n.default_locale = :de 62 + config.i18n.default_locale = nil
35 63
36 # Configure the default encoding used in templates for Ruby 1.9. 64 # Configure the default encoding used in templates for Ruby 1.9.
37 config.encoding = "utf-8" 65 config.encoding = "utf-8"
@@ -58,5 +86,14 @@ module Rails3 @@ -58,5 +86,14 @@ module Rails3
58 86
59 # Version of your assets, change this if you want to expire all your assets 87 # Version of your assets, change this if you want to expire all your assets
60 config.assets.version = '1.0' 88 config.assets.version = '1.0'
  89 +
  90 + # Your secret key for verifying cookie session data integrity.
  91 + # If you change this key, all old sessions will become invalid!
  92 + # Make sure the secret is at least 30 characters and all random,
  93 + # no regular words or you'll be exposed to dictionary attacks.
  94 + config.action_dispatch.session = {
  95 + :key => '_noosfero_session',
  96 + :secret => noosfero_session_secret()
  97 + }
61 end 98 end
62 end 99 end
config/environment.rb
@@ -27,74 +27,14 @@ def noosfero_session_secret @@ -27,74 +27,14 @@ def noosfero_session_secret
27 File.read(file).strip 27 File.read(file).strip
28 end 28 end
29 29
30 -Rails::Initializer.run do |config|  
31 - # Settings in config/environments/* take precedence those specified here  
32 -  
33 - # Skip frameworks you're not going to use (only works if using vendor/rails)  
34 - # config.frameworks -= [ :action_web_service, :action_mailer ]  
35 -  
36 - # Add additional load paths for your own custom dirs  
37 - # config.load_paths += %W( #{Rails.root}/extras )  
38 - config.load_paths += %W( #{Rails.root}/app/sweepers )  
39 -  
40 - # Force all environments to use the same logger level  
41 - # (by default production uses :info, the others :debug)  
42 - # config.log_level = :debug  
43 -  
44 - # Use the database for sessions instead of the file system  
45 - # (create the session table with 'rake db:sessions:create')  
46 - # config.action_controller.session_store = :active_record_store  
47 -  
48 - # Use SQL instead of Active Record's schema dumper when creating the test database.  
49 - # This is necessary if your schema can't be completely dumped by the schema dumper,  
50 - # like if you have constraints or database-specific column types  
51 - # config.active_record.schema_format = :sql  
52 -  
53 - # Activate observers that should always be running  
54 - # config.active_record.observers = :cacher, :garbage_collector  
55 -  
56 - # don't load the sweepers while loading the database  
57 - ignore_rake_commands = %w[  
58 - db:schema:load  
59 - gems:install  
60 - clobber  
61 - noosfero:translations:compile  
62 - makemo  
63 - ]  
64 - if $PROGRAM_NAME =~ /rake$/ && (ignore_rake_commands.include?(ARGV.first))  
65 - $NOOSFERO_LOAD_PLUGINS = false  
66 - else  
67 - $NOOSFERO_LOAD_PLUGINS = true  
68 - config.active_record.observers = :article_sweeper, :role_assignment_sweeper, :friendship_sweeper, :category_sweeper, :block_sweeper  
69 - end  
70 - # Make Active Record use UTC-base instead of local time  
71 - # config.active_record.default_timezone = :utc  
72 -  
73 - # Your secret key for verifying cookie session data integrity.  
74 - # If you change this key, all old sessions will become invalid!  
75 - # Make sure the secret is at least 30 characters and all random,  
76 - # no regular words or you'll be exposed to dictionary attacks.  
77 - config.action_controller.session = {  
78 - :session_key => '_noosfero_session',  
79 - :secret => noosfero_session_secret(),  
80 - }  
81 -  
82 - # Adds custom attributes to the Set of allowed html attributes for the #sanitize helper  
83 - config.action_view.sanitized_allowed_attributes = 'align', 'border', 'alt', 'vspace', 'hspace', 'width', 'heigth', 'value', 'type', 'data', 'style', 'target', 'codebase', 'archive', 'classid', 'code', 'flashvars', 'scrolling', 'frameborder'  
84 -  
85 - # Adds custom tags to the Set of allowed html tags for the #sanitize helper  
86 - config.action_view.sanitized_allowed_tags = 'object', 'embed', 'param', 'table', 'tr', 'th', 'td', 'applet', 'comment', 'iframe'  
87 -  
88 - # See Rails::Configuration for more options  
89 -  
90 - extra_controller_dirs.each do |item|  
91 - $LOAD_PATH << item  
92 - config.controller_paths << item  
93 - end  
94 -end  
95 -extra_controller_dirs.each do |item|  
96 - (ActiveSupport.const_defined?('Dependencies') ? ActiveSupport::Dependencies : ::Dependencies).load_paths << item  
97 -end 30 +#FIXME controller_paths are no more supported on Rails 3
  31 +#extra_controller_dirs.each do |item|
  32 +# $LOAD_PATH << item
  33 +# config.controller_paths << item
  34 +#end
  35 +#extra_controller_dirs.each do |item|
  36 +# (ActiveSupport.const_defined?('Dependencies') ? ActiveSupport::Dependencies : ::Dependencies).load_paths << item
  37 +#end
98 38
99 # Add new inflection rules using the following format 39 # Add new inflection rules using the following format
100 # (all these examples are active by default): 40 # (all these examples are active by default):
@@ -109,10 +49,8 @@ end @@ -109,10 +49,8 @@ end
109 49
110 ActiveRecord::Base.store_full_sti_class = true 50 ActiveRecord::Base.store_full_sti_class = true
111 51
112 -# if you want to override this, do it in config/local.rb !  
113 -Noosfero.default_locale = nil  
114 -  
115 -Tag.hierarchical = true 52 +#FIXME: Probably act_as_taggable_on is not being loaded or this should be on another place
  53 +#Tag.hierarchical = true
116 54
117 # several local libraries 55 # several local libraries
118 require 'noosfero' 56 require 'noosfero'
config/initializers/html_safe.rb 0 → 100644
@@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
  1 +#From: https://github.com/coletivoEITA/noosfero-ecosol/blob/57908cde4fe65dfe22298a8a7f6db5dba1e7cc75/config/initializers/html_safe.rb
  2 +
  3 +# Disable Rails html autoescaping. This is due to noosfero using too much helpers/models to output html.
  4 +# It it would change too much code and make it hard to maintain.
  5 +class Object
  6 + def html_safe?
  7 + true
  8 + end
  9 +end
0 \ No newline at end of file 10 \ No newline at end of file