diff --git a/app/controllers/canvas_controller.rb b/app/controllers/canvas_controller.rb index 804dc5747..c07e59ad3 100644 --- a/app/controllers/canvas_controller.rb +++ b/app/controllers/canvas_controller.rb @@ -33,7 +33,7 @@ class CanvasController < ApplicationController # Make sure that remove parameter is valid to_archive = [] - if can_archive_modules(@experiment.project) and + if can_archive_modules(@experiment) and update_params[:remove].present? then to_archive = update_params[:remove].split(",") unless to_archive.all? { |id| is_int? id } @@ -49,7 +49,7 @@ class CanvasController < ApplicationController # Make sure connections parameter is valid connections = [] - if can_edit_connections(@experiment.project) and + if can_edit_connections(@experiment) and update_params[:connections].present? then conns = update_params[:connections].split(",") unless conns.length % 2 == 0 and @@ -68,7 +68,7 @@ class CanvasController < ApplicationController # Make sure positions parameter is valid positions = Hash.new - if can_reposition_modules(@experiment.project) and + if can_reposition_modules(@experiment) and update_params[:positions].present? then poss = update_params[:positions].split(";") center = "" @@ -104,7 +104,7 @@ class CanvasController < ApplicationController # Make sure that to_add is an array of strings, # as well as that positions for newly added modules exist to_add = [] - if can_create_modules(@experiment.project) and + if can_create_modules(@experiment) and update_params[:add].present? and update_params["add-names"].present? then ids = update_params[:add].split(",") @@ -131,7 +131,7 @@ class CanvasController < ApplicationController # Make sure rename parameter is valid to_rename = Hash.new - if can_edit_modules(@experiment.project) and + if can_edit_modules(@experiment) and update_params[:rename].present? then begin to_rename = JSON.parse(update_params[:rename]) @@ -156,7 +156,7 @@ class CanvasController < ApplicationController # Make sure that to_clone is an array of pairs, # as well as that all IDs exist to_clone = Hash.new - if can_clone_modules(@experiment.project) and + if can_clone_modules(@experiment) and update_params[:cloned].present? then clones = update_params[:cloned].split(";") (clones.collect { |v| v.split(",") }).each do |val| @@ -177,7 +177,7 @@ class CanvasController < ApplicationController end module_groups = Hash.new - if can_edit_module_groups(@experiment.project) and + if can_edit_module_groups(@experiment) and update_params["module-groups"].present? then begin module_groups = JSON.parse(update_params["module-groups"]) @@ -265,13 +265,13 @@ class CanvasController < ApplicationController end def check_edit_canvas - unless can_edit_canvas(@experiment.project) + unless can_edit_canvas(@experiment) render_403 and return end end def check_view_canvas - unless can_view_project(@experiment.project) + unless can_view_experiment(@experiment) render_403 and return end end diff --git a/app/helpers/permission_helper.rb b/app/helpers/permission_helper.rb index 5b8b23d4d..4251d0eb1 100644 --- a/app/helpers/permission_helper.rb +++ b/app/helpers/permission_helper.rb @@ -301,38 +301,38 @@ module PermissionHelper # ---- WORKFLOW PERMISSIONS ---- - def can_edit_canvas(project) - is_user_or_higher_of_project(project) + def can_edit_canvas(experiment) + is_user_or_higher_of_project(experiment.project) end - def can_reposition_modules(project) - is_user_or_higher_of_project(project) + def can_reposition_modules(experiment) + is_user_or_higher_of_project(experiment.project) end - def can_edit_connections(project) - is_user_or_higher_of_project(project) + def can_edit_connections(experiment) + is_user_or_higher_of_project(experiment.project) end # ---- MODULE PERMISSIONS ---- - def can_create_modules(project) - is_user_or_higher_of_project(project) + def can_create_modules(experiment) + is_user_or_higher_of_project(experiment.project) end - def can_edit_modules(project) - is_user_or_higher_of_project(project) + def can_edit_modules(experiment) + is_user_or_higher_of_project(experiment.project) end - def can_edit_module_groups(project) - is_user_or_higher_of_project(project) + def can_edit_module_groups(experiment) + is_user_or_higher_of_project(experiment.project) end - def can_clone_modules(project) - is_user_or_higher_of_project(project) + def can_clone_modules(experiment) + is_user_or_higher_of_project(experiment.project) end - def can_archive_modules(project) - is_user_or_higher_of_project(project) + def can_archive_modules(experiment) + is_user_or_higher_of_project(experiment.project) end def can_view_module(my_module) diff --git a/app/views/canvas/_edit.html.erb b/app/views/canvas/_edit.html.erb index 360bb4a3c..167d13537 100644 --- a/app/views/canvas/_edit.html.erb +++ b/app/views/canvas/_edit.html.erb @@ -1,11 +1,11 @@