Commit fcd6492a16aa5c39aa8834f9cfbd812844bcb757
Committed by
Joenio Costa
1 parent
830bbafe
Exists in
master
and in
28 other branches
Adding the possibility to manage the user terms of use by a graphic interface
(ActionItem1502)
Showing
5 changed files
with
68 additions
and
2 deletions
Show diff stats
app/models/environment.rb
@@ -209,7 +209,7 @@ class Environment < ActiveRecord::Base | @@ -209,7 +209,7 @@ class Environment < ActiveRecord::Base | ||
209 | 209 | ||
210 | # sets the environment's terms of use. | 210 | # sets the environment's terms of use. |
211 | def terms_of_use=(value) | 211 | def terms_of_use=(value) |
212 | - self.settings['terms_of_use'] = value | 212 | + self.settings['terms_of_use'] = value.blank? ? nil : value |
213 | end | 213 | end |
214 | 214 | ||
215 | # returns <tt>true</tt> if this Environment has terms of use to be | 215 | # returns <tt>true</tt> if this Environment has terms of use to be |
app/views/admin_panel/index.rhtml
@@ -13,4 +13,5 @@ | @@ -13,4 +13,5 @@ | ||
13 | <tr><td><%= link_to _('Edit Templates'), :action => 'edit_templates' %></td></tr> | 13 | <tr><td><%= link_to _('Edit Templates'), :action => 'edit_templates' %></td></tr> |
14 | <tr><td><%= link_to _('Manage Fields'), :controller => 'features', :action => 'manage_fields' %></td></tr> | 14 | <tr><td><%= link_to _('Manage Fields'), :controller => 'features', :action => 'manage_fields' %></td></tr> |
15 | <tr><td><%= link_to _('Set Portal'), :action => 'set_portal_community' %></td></tr> | 15 | <tr><td><%= link_to _('Set Portal'), :action => 'set_portal_community' %></td></tr> |
16 | + <tr><td><%= link_to _('Terms of use'), :action => 'terms_of_use' %></td></tr> | ||
16 | </table> | 17 | </table> |
@@ -0,0 +1,14 @@ | @@ -0,0 +1,14 @@ | ||
1 | +<h2><%= _('Terms of use') %></h2> | ||
2 | + | ||
3 | +<%= render :file => 'shared/tiny_mce' %> | ||
4 | + | ||
5 | +<% labelled_form_for :environment, @environment, :url => {:action => 'site_info'} do |f| %> | ||
6 | + | ||
7 | + <%= f.text_area :terms_of_use, :cols => 40, :style => 'width: 90%' %> | ||
8 | + | ||
9 | + <% button_bar do %> | ||
10 | + <%= submit_button(:save, _('Save')) %> | ||
11 | + <%= button(:cancel, _('Cancel'), :action => 'index') %> | ||
12 | + <% end %> | ||
13 | + | ||
14 | +<% end %> |
test/functional/admin_panel_controller_test.rb
@@ -66,7 +66,12 @@ class AdminPanelControllerTest < Test::Unit::TestCase | @@ -66,7 +66,12 @@ class AdminPanelControllerTest < Test::Unit::TestCase | ||
66 | get :index | 66 | get :index |
67 | assert_tag :tag => 'a', :attributes => { :href => '/admin/admin_panel/message_for_disabled_enterprise' } | 67 | assert_tag :tag => 'a', :attributes => { :href => '/admin/admin_panel/message_for_disabled_enterprise' } |
68 | end | 68 | end |
69 | - | 69 | + |
70 | + should 'link to define terms of use' do | ||
71 | + get :index | ||
72 | + assert_tag :tag => 'a', :attributes => { :href => '/admin/admin_panel/terms_of_use' } | ||
73 | + end | ||
74 | + | ||
70 | should 'display form for editing site info' do | 75 | should 'display form for editing site info' do |
71 | get :site_info | 76 | get :site_info |
72 | assert_template 'site_info' | 77 | assert_template 'site_info' |
@@ -79,6 +84,12 @@ class AdminPanelControllerTest < Test::Unit::TestCase | @@ -79,6 +84,12 @@ class AdminPanelControllerTest < Test::Unit::TestCase | ||
79 | assert_tag :tag => 'textarea', :attributes => { :name => 'environment[message_for_disabled_enterprise]'} | 84 | assert_tag :tag => 'textarea', :attributes => { :name => 'environment[message_for_disabled_enterprise]'} |
80 | end | 85 | end |
81 | 86 | ||
87 | + should 'display form for editing terms of use' do | ||
88 | + get :terms_of_use | ||
89 | + assert_template 'terms_of_use' | ||
90 | + assert_tag :tag => 'textarea', :attributes => { :name => 'environment[terms_of_use]'} | ||
91 | + end | ||
92 | + | ||
82 | should 'save site description' do | 93 | should 'save site description' do |
83 | post :site_info, :environment => { :description => "This is my new environment" } | 94 | post :site_info, :environment => { :description => "This is my new environment" } |
84 | assert_redirected_to :action => 'index' | 95 | assert_redirected_to :action => 'index' |
@@ -93,6 +104,23 @@ class AdminPanelControllerTest < Test::Unit::TestCase | @@ -93,6 +104,23 @@ class AdminPanelControllerTest < Test::Unit::TestCase | ||
93 | assert_equal "This enterprise is disabled", Environment.default.message_for_disabled_enterprise | 104 | assert_equal "This enterprise is disabled", Environment.default.message_for_disabled_enterprise |
94 | end | 105 | end |
95 | 106 | ||
107 | + should 'save content of terms of use' do | ||
108 | + content = "This is my term of use" | ||
109 | + post :site_info, :environment => { :terms_of_use => content } | ||
110 | + assert_redirected_to :action => 'index' | ||
111 | + | ||
112 | + assert_equal content, Environment.default.terms_of_use | ||
113 | + assert Environment.default.has_terms_of_use? | ||
114 | + end | ||
115 | + | ||
116 | + should 'not save empty string as terms of use' do | ||
117 | + content = "" | ||
118 | + post :site_info, :environment => { :terms_of_use => content } | ||
119 | + assert_redirected_to :action => 'index' | ||
120 | + | ||
121 | + assert !Environment.default.has_terms_of_use? | ||
122 | + end | ||
123 | + | ||
96 | should 'sanitize message for disabled enterprise with white_list' do | 124 | should 'sanitize message for disabled enterprise with white_list' do |
97 | post :site_info, :environment => { :message_for_disabled_enterprise => "This <strong>is</strong> <script>alert('alow')</script>my new environment" } | 125 | post :site_info, :environment => { :message_for_disabled_enterprise => "This <strong>is</strong> <script>alert('alow')</script>my new environment" } |
98 | assert_redirected_to :action => 'index' | 126 | assert_redirected_to :action => 'index' |
test/unit/environment_test.rb
@@ -71,6 +71,16 @@ class EnvironmentTest < Test::Unit::TestCase | @@ -71,6 +71,16 @@ class EnvironmentTest < Test::Unit::TestCase | ||
71 | assert_equal 'To be part of this environment, you must accept the following terms: ...', Environment.find(id).terms_of_use | 71 | assert_equal 'To be part of this environment, you must accept the following terms: ...', Environment.find(id).terms_of_use |
72 | end | 72 | end |
73 | 73 | ||
74 | + should "terms of use not be an empty string" do | ||
75 | + v = Environment.new(:name => 'My test environment') | ||
76 | + assert_nil v.terms_of_use | ||
77 | + v.terms_of_use = "" | ||
78 | + assert v.save | ||
79 | + assert !v.has_terms_of_use? | ||
80 | + id = v.id | ||
81 | + assert_nil Environment.find(v.id).terms_of_use | ||
82 | + end | ||
83 | + | ||
74 | def test_has_terms_of_use | 84 | def test_has_terms_of_use |
75 | v = Environment.new | 85 | v = Environment.new |
76 | assert !v.has_terms_of_use? | 86 | assert !v.has_terms_of_use? |
@@ -902,4 +912,17 @@ class EnvironmentTest < Test::Unit::TestCase | @@ -902,4 +912,17 @@ class EnvironmentTest < Test::Unit::TestCase | ||
902 | assert_match /<!-- .* --> <h1> Wellformed html code <\/h1>/, environment.message_for_disabled_enterprise | 912 | assert_match /<!-- .* --> <h1> Wellformed html code <\/h1>/, environment.message_for_disabled_enterprise |
903 | end | 913 | end |
904 | 914 | ||
915 | + should "not crash when set nil as terms of use" do | ||
916 | + v = Environment.new(:name => 'My test environment') | ||
917 | + v.terms_of_use = nil | ||
918 | + assert v.save! | ||
919 | + end | ||
920 | + | ||
921 | + should "terms of use not be an blank string" do | ||
922 | + v = Environment.new(:name => 'My test environment') | ||
923 | + v.terms_of_use = " " | ||
924 | + assert v.save! | ||
925 | + assert !v.has_terms_of_use? | ||
926 | + end | ||
927 | + | ||
905 | end | 928 | end |