summaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-31 14:07:49 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-31 14:07:49 +0200
commit2a658f721def1f6646077b9687d53b36a928d021 (patch)
tree2ca1c0a47a1af4d772c6256973a942acaf01dba1 /app/controllers
parent7e92f9160fdfecfcddb32cb2fd16acf423b4a8cf (diff)
Enforce slug and parent_id changes only taking place through update
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/nodes_controller.rb14
1 files changed, 9 insertions, 5 deletions
diff --git a/app/controllers/nodes_controller.rb b/app/controllers/nodes_controller.rb
index 4ac3d99a..c56fd945 100644
--- a/app/controllers/nodes_controller.rb
+++ b/app/controllers/nodes_controller.rb
@@ -26,7 +26,7 @@ class NodesController < ApplicationController
26 end 26 end
27 27
28 def new 28 def new
29 @node = Node.new node_params 29 @node = Node.new node_create_params
30 @selected_kind = CccConventions::NODE_KINDS.key?(params[:kind]) ? params[:kind] : "generic" 30 @selected_kind = CccConventions::NODE_KINDS.key?(params[:kind]) ? params[:kind] : "generic"
31 @parent = Node.find(params[:parent_id]) if params.has_key?(:parent_id) 31 @parent = Node.find(params[:parent_id]) if params.has_key?(:parent_id)
32 @attach_asset = Asset.find(params[:asset_id]) if params.has_key?(:asset_id) 32 @attach_asset = Asset.find(params[:asset_id]) if params.has_key?(:asset_id)
@@ -92,7 +92,7 @@ class NodesController < ApplicationController
92 end 92 end
93 93
94 def update 94 def update
95 @node.update(node_params) 95 @node.update(node_update_params)
96 @node.autosave!( page_params.merge(:tag_list => params[:tag_list]), current_user ) 96 @node.autosave!( page_params.merge(:tag_list => params[:tag_list]), current_user )
97 @node.save_draft!(current_user) 97 @node.save_draft!(current_user)
98 98
@@ -124,7 +124,7 @@ class NodesController < ApplicationController
124 end 124 end
125 125
126 def autosave 126 def autosave
127 @node.update(node_params) 127 @node.update(node_update_params)
128 @node.autosave!( page_params.merge(:tag_list => params[:tag_list]), current_user ) 128 @node.autosave!( page_params.merge(:tag_list => params[:tag_list]), current_user )
129 head :ok 129 head :ok
130 rescue LockedByAnotherUser => e 130 rescue LockedByAnotherUser => e
@@ -268,8 +268,12 @@ class NodesController < ApplicationController
268 title.to_s.parameterize 268 title.to_s.parameterize
269 end 269 end
270 270
271 def node_params 271 def node_create_params
272 params.fetch(:node, {}).permit(:slug, :parent_id, :staged_slug, :staged_parent_id) 272 params.fetch(:node, {}).permit(:slug, :parent_id)
273 end
274
275 def node_update_params
276 params.fetch(:node, {}).permit(:staged_slug, :staged_parent_id)
273 end 277 end
274 278
275 def page_params 279 def page_params