#1213 DMS project preferences for non-members

This commit is contained in:
karel.picman@lbcfree.net 2021-02-26 11:22:48 +01:00
parent f7a3a053e1
commit f4764fc50a
2 changed files with 93 additions and 35 deletions

View File

@ -19,17 +19,8 @@
# 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 %>
<% if member %>
<fieldset class="box tabular">
<legend><%= l(:link_user_preferences) %></legend>
<p>
@ -37,21 +28,22 @@
<%= 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) %>
selected: member.dmsf_mail_notification) %>
</p>
<p>
<%= content_tag :label, l(:label_title_format) %>
<%= text_field_tag 'title_format', title_format, size: 10 %>
<%= text_field_tag 'title_format', member.dmsf_title_format, size: 10 %>
<em class="info"><%= l(:text_title_format) %></em>
</p>
<p>
<%= content_tag :label, l(:label_dmsf_fast_links) %>
<%= check_box_tag 'fast_links', 1, fast_links %>
<%= check_box_tag 'fast_links', 1, member.dmsf_fast_links %>
<em class="info">
<%= l(:text_dmsf_fast_links_info) %>
</em>
</p>
</fieldset>
<% end %>
<% if Setting.plugin_redmine_dmsf['dmsf_act_as_attachable'] %>
<fieldset class="box tabular">
<legend><%= l(:field_project) %> <%= l(:label_preferences) %></legend>
@ -65,7 +57,11 @@
</p>
</fieldset>
<% end %>
<% if member || Setting.plugin_redmine_dmsf['dmsf_act_as_attachable'] %>
<div class="form-actions">
<%= submit_tag l(:submit_save), title: l(:title_save_preferences), class: 'button-positive' %>
</div>
<% else %>
<p class="nodata"><%= l(:label_no_data) %></p>
<% end %>
<% end %>

View File

@ -0,0 +1,62 @@
# encoding: utf-8
# frozen_string_literal: true
#
# Redmine plugin for Document Management System "Features"
#
# Copyright © 2011-21 Karel Pičman <karel.picman@kontron.com>
#
# 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