diff --git a/app/views/dmsf_state/_user_pref.html.erb b/app/views/dmsf_state/_user_pref.html.erb index fed328f4..ba44e6f4 100644 --- a/app/views/dmsf_state/_user_pref.html.erb +++ b/app/views/dmsf_state/_user_pref.html.erb @@ -19,39 +19,31 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%> <% member = Member.find_by(project_id: @project.id, user_id: User.current.id) %> -<% if member %> - <% mail_notification = member.dmsf_mail_notification %> - <% title_format = member.dmsf_title_format %> - <% fast_links = member.dmsf_fast_links %> -<% else %> - <% mail_notification = false %> - <% title_format = '' %> - <% fast_links = false %> -<% end %> - <%= form_tag(dmsf_user_pref_save_path(@project)) do %> -
- <%= l(:link_user_preferences) %> -

- <%= content_tag :label, l(:label_notifications) %> - <%= select_tag 'email_notify', - options_for_select([[l(:select_option_default), nil], - [l(:select_option_activated), true], [l(:select_option_deactivated), false]], - selected: mail_notification) %> -

-

- <%= content_tag :label, l(:label_title_format) %> - <%= text_field_tag 'title_format', title_format, size: 10 %> - <%= l(:text_title_format) %> -

-

- <%= content_tag :label, l(:label_dmsf_fast_links) %> - <%= check_box_tag 'fast_links', 1, fast_links %> - - <%= l(:text_dmsf_fast_links_info) %> - -

-
+ <% if member %> +
+ <%= l(:link_user_preferences) %> +

+ <%= content_tag :label, l(:label_notifications) %> + <%= select_tag 'email_notify', + options_for_select([[l(:select_option_default), nil], + [l(:select_option_activated), true], [l(:select_option_deactivated), false]], + selected: member.dmsf_mail_notification) %> +

+

+ <%= content_tag :label, l(:label_title_format) %> + <%= text_field_tag 'title_format', member.dmsf_title_format, size: 10 %> + <%= l(:text_title_format) %> +

+

+ <%= content_tag :label, l(:label_dmsf_fast_links) %> + <%= check_box_tag 'fast_links', 1, member.dmsf_fast_links %> + + <%= l(:text_dmsf_fast_links_info) %> + +

+
+ <% end %> <% if Setting.plugin_redmine_dmsf['dmsf_act_as_attachable'] %>
<%= l(:field_project) %> <%= l(:label_preferences) %> @@ -65,7 +57,11 @@

<% end %> -
- <%= submit_tag l(:submit_save), title: l(:title_save_preferences), class: 'button-positive' %> -
+ <% if member || Setting.plugin_redmine_dmsf['dmsf_act_as_attachable'] %> +
+ <%= submit_tag l(:submit_save), title: l(:title_save_preferences), class: 'button-positive' %> +
+ <% else %> +

<%= l(:label_no_data) %>

+ <% end %> <% end %> diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb new file mode 100644 index 00000000..d896e9cb --- /dev/null +++ b/test/functional/projects_controller_test.rb @@ -0,0 +1,62 @@ +# encoding: utf-8 +# frozen_string_literal: true +# +# Redmine plugin for Document Management System "Features" +# +# Copyright © 2011-21 Karel Pičman +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class ProjectsControllerTest < RedmineDmsf::Test::TestCase + + include Redmine::I18n + + def test_settings_dms_member + @request.session[:user_id] = @jsmith.id + @role_manager.add_permission! :user_preferences + with_settings plugin_redmine_dmsf: {'dmsf_act_as_attachable' => '1'} do + get :settings, params: { id: @project1.id, tab: 'dmsf' } + end + assert_response :success + assert_select 'fieldset legend', text: l(:link_user_preferences) + assert_select 'fieldset legend', text: "#{l(:field_project)} #{l(:label_preferences)}" + end + + def test_settings_dms_member_no_permission + @request.session[:user_id] = @jsmith.id + @role_manager.remove_permission! :user_preferences + get :settings, params: { id: @project1.id, tab: 'dmsf' } + assert_response :success + assert_select 'fieldset legend', text: l(:link_user_preferences), count: 0 + end + + def test_settings_dms_non_member + @request.session[:user_id] = @admin.id + get :settings, params: { id: @project1.id, tab: 'dmsf' } + assert_response :success + assert_select 'fieldset legend', text: l(:link_user_preferences), count: 0 + end + + def test_settings_dms_member_no_act_as_attachments + @request.session[:user_id] = @jsmith.id + @role_manager.add_permission! :user_preferences + get :settings, params: { id: @project1.id, tab: 'dmsf' } + assert_response :success + assert_select 'fieldset legend', text: "#{l(:field_project)} #{l(:label_preferences)}", count: 0 + end + +end \ No newline at end of file