diff options
| author | Zog | 2018-03-26 11:12:25 +0200 |
|---|---|---|
| committer | Zog | 2018-03-26 11:12:25 +0200 |
| commit | deea16664b122b9db9c615980944a63f510c39f7 (patch) | |
| tree | 60adeaef608b58fdc40a12101f54d66fc1b83cda | |
| parent | 1a64e4cb265a320005247e54b880287d3308d28b (diff) | |
| download | chouette-core-deea16664b122b9db9c615980944a63f510c39f7.tar.bz2 | |
Refs #6218; Limit accessible exports for workgroups
| -rw-r--r-- | app/controllers/development_toolbar_controller.rb | 7 | ||||
| -rw-r--r-- | app/helpers/exports_helper.rb | 3 | ||||
| -rw-r--r-- | app/models/workgroup.rb | 4 | ||||
| -rw-r--r-- | app/views/exports/_form.html.slim | 2 | ||||
| -rw-r--r-- | app/views/shared/_development_toolbar.html.slim | 14 | ||||
| -rw-r--r-- | db/migrate/20180326085804_bind_exports_and_imports_types_to_workgroups.rb | 6 |
6 files changed, 35 insertions, 1 deletions
diff --git a/app/controllers/development_toolbar_controller.rb b/app/controllers/development_toolbar_controller.rb index 20349f7b8..be9a37eba 100644 --- a/app/controllers/development_toolbar_controller.rb +++ b/app/controllers/development_toolbar_controller.rb @@ -6,6 +6,13 @@ class DevelopmentToolbarController < ApplicationController organisation.save current_user.permissions = params[:permissions].keys.select{|k| params[:permissions][k] == "true"} current_user.save + if params[:export_types].present? + params[:export_types].each do |workgroup_id, export_types| + workgroup = Workgroup.find workgroup_id + workgroup.export_types = export_types.keys.select{|k| export_types[k] == "true"} + workgroup.save! + end + end redirect_to request.referrer || "/" end end diff --git a/app/helpers/exports_helper.rb b/app/helpers/exports_helper.rb index dc0720c40..2e784ad35 100644 --- a/app/helpers/exports_helper.rb +++ b/app/helpers/exports_helper.rb @@ -53,4 +53,7 @@ module ExportsHelper end end + def workgroup_exports workgroup + Export::Base.user_visible_descendants.select{|e| workgroup.has_export? e.name} + end end diff --git a/app/models/workgroup.rb b/app/models/workgroup.rb index 708225a2a..7e3e857ec 100644 --- a/app/models/workgroup.rb +++ b/app/models/workgroup.rb @@ -19,4 +19,8 @@ class Workgroup < ActiveRecord::Base def custom_fields_definitions Hash[*custom_fields.map{|cf| [cf.code, cf]}.flatten] end + + def has_export? export_name + export_types.include? export_name + end end diff --git a/app/views/exports/_form.html.slim b/app/views/exports/_form.html.slim index 44b4e447c..999e33e34 100644 --- a/app/views/exports/_form.html.slim +++ b/app/views/exports/_form.html.slim @@ -4,7 +4,7 @@ .col-lg-12 = form.input :name .col-lg-12 - = form.input :type, as: :select, collection: Export::Base.user_visible_descendants, label_method: :human_name + = form.input :type, as: :select, collection: workgroup_exports(workbench.workgroup), label_method: :human_name = form.input :referential_id, as: :select, collection: workbench.referentials, label_method: :name - Export::Base.user_visible_descendants.each do |child| diff --git a/app/views/shared/_development_toolbar.html.slim b/app/views/shared/_development_toolbar.html.slim index aafd37885..836066b3d 100644 --- a/app/views/shared/_development_toolbar.html.slim +++ b/app/views/shared/_development_toolbar.html.slim @@ -20,6 +20,20 @@ - if Rails.application.config.development_toolbar.features_doc_url = link_to "#{Rails.application.config.development_toolbar.features_doc_url}##{feature}", target: :blank do .fa.fa-question-circle + + - if @workbench + h4 + = "Exports" + .toggles + = link_to 'all', '#', data: {mask: 'export_types', val: true} + = link_to 'none', '#', data: {mask: 'export_types', val: false} + ul + - Export::Base.user_visible_descendants.each do |export| + li + = hidden_field_tag "export_types[#{@workbench.workgroup_id}][#{export.name}]", false, id: "" + = check_box_tag "export_types[#{@workbench.workgroup_id}][#{export.name}]", true, @workbench.workgroup.has_export?(export.name) + = label :export_types, export.human_name + .col.permissions h4 = "Permissions" diff --git a/db/migrate/20180326085804_bind_exports_and_imports_types_to_workgroups.rb b/db/migrate/20180326085804_bind_exports_and_imports_types_to_workgroups.rb new file mode 100644 index 000000000..d75336673 --- /dev/null +++ b/db/migrate/20180326085804_bind_exports_and_imports_types_to_workgroups.rb @@ -0,0 +1,6 @@ +class BindExportsAndImportsTypesToWorkgroups < ActiveRecord::Migration + def change + add_column :workgroups, "import_types", :string, default: [], array: true + add_column :workgroups, "export_types", :string, default: [], array: true + end +end |
