Commit 04bbb571c04d7230aa04f5ce6415282662647dd3
Exists in
master
and in
29 other branches
Merge branch 'stable'
Showing
2 changed files
with
15 additions
and
1 deletions
Show diff stats
app/models/environment.rb
@@ -597,7 +597,7 @@ class Environment < ActiveRecord::Base | @@ -597,7 +597,7 @@ class Environment < ActiveRecord::Base | ||
597 | end | 597 | end |
598 | 598 | ||
599 | def portal_folders | 599 | def portal_folders |
600 | - (settings[:portal_folders] || []).map{|fid| portal_community.articles.find(fid) } | 600 | + (settings[:portal_folders] || []).map{|fid| portal_community.articles.find(:first, :conditions => { :id => fid }) }.compact |
601 | end | 601 | end |
602 | 602 | ||
603 | def portal_folders=(folders) | 603 | def portal_folders=(folders) |
test/unit/environment_test.rb
@@ -803,6 +803,20 @@ class EnvironmentTest < Test::Unit::TestCase | @@ -803,6 +803,20 @@ class EnvironmentTest < Test::Unit::TestCase | ||
803 | assert_equal [], e.portal_folders | 803 | assert_equal [], e.portal_folders |
804 | end | 804 | end |
805 | 805 | ||
806 | + should 'not crash when a portal folder is removed' do | ||
807 | + e = Environment.default | ||
808 | + | ||
809 | + c = e.portal_community = fast_create(Community) | ||
810 | + news_folder = fast_create(Folder, :name => 'news folder', :profile_id => c.id) | ||
811 | + | ||
812 | + e.portal_folders = [news_folder] | ||
813 | + e.save!; e.reload | ||
814 | + | ||
815 | + news_folder.destroy | ||
816 | + | ||
817 | + assert_not_includes e.portal_folders, nil | ||
818 | + end | ||
819 | + | ||
806 | should 'have roles with names independent of other environments' do | 820 | should 'have roles with names independent of other environments' do |
807 | e1 = fast_create(Environment) | 821 | e1 = fast_create(Environment) |
808 | role1 = Role.create!(:name => 'test_role', :environment => e1) | 822 | role1 = Role.create!(:name => 'test_role', :environment => e1) |