- ##
- # test the redaction of an old version of a node, while being
- # authorised as a moderator.
- def test_redact_node_moderator
- node = create(:node, :with_history, :version => 4)
- node_v3 = node.old_nodes.find_by(:version => 3)
- auth_header = basic_authorization_header create(:moderator_user).email, "test"
-
- do_redact_node(node_v3, create(:redaction), auth_header)
- assert_response :success, "should be OK to redact old version as moderator."
-
- # check moderator can still see the redacted data, when passing
- # the appropriate flag
- get node_version_path(:id => node_v3.node_id, :version => node_v3.version), :headers => auth_header
- assert_response :forbidden, "After redaction, node should be gone for moderator, when flag not passed."
- get node_version_path(:id => node_v3.node_id, :version => node_v3.version), :params => { :show_redactions => "true" }, :headers => auth_header
- assert_response :success, "After redaction, node should not be gone for moderator, when flag passed."
-
- # and when accessed via history
- get api_node_history_path(:id => node_v3.node_id)
- assert_response :success, "Redaction shouldn't have stopped history working."
- assert_select "osm node[id='#{node_v3.node_id}'][version='#{node_v3.version}']", 0,
- "node #{node_v3.node_id} version #{node_v3.version} should not be present in the history for moderators when not passing flag."
- get api_node_history_path(:id => node_v3.node_id), :params => { :show_redactions => "true" }, :headers => auth_header
- assert_response :success, "Redaction shouldn't have stopped history working."
- assert_select "osm node[id='#{node_v3.node_id}'][version='#{node_v3.version}']", 1,
- "node #{node_v3.node_id} version #{node_v3.version} should still be present in the history for moderators when passing flag."
+ def test_redact_node_by_regular_with_write_redactions_scope
+ node = create(:node, :with_history, :version => 2)
+ old_node = node.old_nodes.find_by(:version => 1)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header(create(:user), :scopes => %w[write_redactions])
+
+ post node_version_redact_path(*old_node.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :forbidden, "should need to be moderator to redact."
+ assert_nil old_node.reload.redaction