mirror of
https://github.com/opf/openproject.git
synced 2026-06-14 03:30:14 +00:00
reenabled select_project_modules permission
This commit is contained in:
@@ -34,4 +34,19 @@ class ProjectSettings::ModulesController < ProjectSettingsController
|
||||
def show
|
||||
render template: 'project_settings/modules'
|
||||
end
|
||||
|
||||
def update
|
||||
call = Projects::EnabledModulesService
|
||||
.new(model: @project, user: current_user)
|
||||
.call(enabled_modules: permitted_params.project[:enabled_module_names])
|
||||
|
||||
if call.success?
|
||||
flash[:notice] = I18n.t(:notice_successful_update)
|
||||
|
||||
redirect_to settings_modules_project_path(@project)
|
||||
else
|
||||
@errors = call.errors
|
||||
render 'project_settings/modules'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -83,21 +83,6 @@ class ProjectsController < ApplicationController
|
||||
end
|
||||
end
|
||||
|
||||
def modules
|
||||
call = Projects::EnabledModulesService
|
||||
.new(model: @project, user: current_user)
|
||||
.call(enabled_modules: permitted_params.project[:enabled_module_names])
|
||||
|
||||
if call.success?
|
||||
flash[:notice] = I18n.t(:notice_successful_update)
|
||||
|
||||
redirect_to settings_modules_project_path(@project)
|
||||
else
|
||||
@errors = call.errors
|
||||
render 'project_settings/modules'
|
||||
end
|
||||
end
|
||||
|
||||
def custom_fields
|
||||
Project.transaction do
|
||||
@project.work_package_custom_field_ids = permitted_params.project[:work_package_custom_field_ids]
|
||||
|
||||
@@ -34,8 +34,8 @@ See COPYRIGHT and LICENSE files for more details.
|
||||
<%= error_messages_for_contract(@project, @errors) %>
|
||||
|
||||
<%= labelled_tabular_form_for @project,
|
||||
url: modules_project_path(@project),
|
||||
method: :put do |form| %>
|
||||
url: settings_modules_project_path(@project),
|
||||
method: :patch do |form| %>
|
||||
|
||||
<%= render partial: "/projects/form/modules",
|
||||
locals: { form: form } %>
|
||||
|
||||
@@ -83,7 +83,10 @@ OpenProject::AccessControl.map do |map|
|
||||
contract_actions: { projects: %i[update] }
|
||||
|
||||
map.permission :select_project_modules,
|
||||
{ projects: :modules },
|
||||
{
|
||||
projects: :modules,
|
||||
'project_settings/modules': %i[show update]
|
||||
},
|
||||
require: :member,
|
||||
dependencies: :edit_project
|
||||
|
||||
|
||||
@@ -199,7 +199,6 @@ OpenProject::Application.routes.draw do
|
||||
|
||||
get :copy
|
||||
|
||||
put :modules
|
||||
put :custom_fields
|
||||
put :archive
|
||||
put :unarchive
|
||||
|
||||
@@ -213,18 +213,6 @@ describe ProjectsController, type: :controller do
|
||||
describe 'with an existing project' do
|
||||
let(:project) { FactoryBot.create :project, identifier: 'blog' }
|
||||
|
||||
it 'should modules' do
|
||||
project.enabled_module_names = %w[work_package_tracking news]
|
||||
put :modules, params: {
|
||||
id: project.id,
|
||||
project: {
|
||||
enabled_module_names: %w[work_package_tracking repository]
|
||||
}
|
||||
}
|
||||
expect(response).to redirect_to '/projects/blog/settings/modules'
|
||||
expect(project.reload.enabled_module_names.sort).to eq %w[repository work_package_tracking]
|
||||
end
|
||||
|
||||
it 'should get destroy info' do
|
||||
get :destroy_info, params: { id: project.id }
|
||||
expect(response).to be_successful
|
||||
|
||||
@@ -96,12 +96,6 @@ describe ProjectsController, type: :routing do
|
||||
end
|
||||
|
||||
describe 'miscellaneous' do
|
||||
it do
|
||||
expect(put('projects/123/modules')).to route_to(
|
||||
controller: 'projects', action: 'modules', id: '123'
|
||||
)
|
||||
end
|
||||
|
||||
it do
|
||||
expect(put('projects/123/custom_fields')).to route_to(
|
||||
controller: 'projects', action: 'custom_fields', id: '123'
|
||||
|
||||
@@ -42,6 +42,13 @@ describe ProjectSettingsController, type: :routing do
|
||||
)
|
||||
end
|
||||
|
||||
it do
|
||||
expect(patch('/projects/123/settings/modules'))
|
||||
.to route_to(
|
||||
controller: 'project_settings/modules', action: 'update', id: '123'
|
||||
)
|
||||
end
|
||||
|
||||
it do
|
||||
expect(get('/projects/123/settings/custom_fields')).to route_to(
|
||||
controller: 'project_settings/custom_fields', action: 'show', id: '123'
|
||||
|
||||
Reference in New Issue
Block a user