diff --git a/app/views/projects/_members_box.html.erb b/app/views/projects/_members_box.html.erb index b5bb46e3a..30b71ea0c 100644 --- a/app/views/projects/_members_box.html.erb +++ b/app/views/projects/_members_box.html.erb @@ -4,5 +4,12 @@ <% @principals_by_role.keys.sort.each do |role| %>
<%= role %>: <%= @principals_by_role[role].sort.collect{|p| link_to_principal(p, :class => p.is_a?(Group) ? 'icon icon-group' : nil)}.join(", ").html_safe %>
<% end %> + <% if @project.is_public %> +<%= l(:field_is_public) %>: <%= l(:general_text_Yes) %> + <%= Setting.login_required? ? l(:text_project_is_public_non_member) : l(:text_project_is_public_anonymous) %> +
<%= l(:text_project_closed) %>
diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 78be5865e..8b421518a 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -1467,6 +1467,10 @@ td.gantt_selected_column .gantt_hdr,.gantt_selected_column_container { color: #fff; border: 1px solid #d22; } +.badge-project-public { + color: #205D86; + border: 1px solid #205D86; +} .badge-count { color: #fff; background:#9DB9D5; diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb index a26793a20..b7ace6f89 100644 --- a/test/functional/projects_controller_test.rb +++ b/test/functional/projects_controller_test.rb @@ -696,6 +696,52 @@ def test_show_should_not_display_empty_sidebar assert_select '#main.nosidebar' end + def test_show_should_display_is_public_project_notice + p = Project.find('ecookbook') + assert p.is_public? + + with_settings :login_required => '0' do + get(:show, :params => {:id => p.identifier}) + assert_response :success + assert_select '#is-public-project-notice .info', :text => l(:text_project_is_public_anonymous) + end + + with_settings :login_required => '1' do + @request.session[:user_id] = 1 + get(:show, :params => {:id => p.identifier}) + assert_response :success + assert_select '#is-public-project-notice .info', :text => l(:text_project_is_public_non_member) + end + end + + def test_show_should_display_is_private_project_notice + @request.session[:user_id] = 1 + p = Project.find('private-child') + assert_not p.is_public? + get(:show, :params => {:id => p.identifier}) + assert_response :success + assert_select '#is-public-project-notice', :count => 0 + end + + def test_show_should_display_project_public_badge_if_project_is_public + p = Project.find('ecookbook') + assert p.is_public? + + get(:show, params: {id: p.identifier}) + assert_response :success + assert_select '.badge.badge-project-public', text: l(:field_is_public) + end + + def test_show_should_not_display_project_public_badge_if_project_is_private + @request.session[:user_id] = 1 + p = Project.find('private-child') + assert_not p.is_public? + + get(:show, params: {id: p.identifier}) + assert_response :success + assert_select '.badge.badge-project-public', count: 0 + end + def test_show_should_display_visible_custom_fields ProjectCustomField.find_by_name('Development status').update_attribute :visible, true get(:show, :params => {:id => 'ecookbook'})