From 7f0e6e95928119e31591c5c39361b2851924d48d Mon Sep 17 00:00:00 2001 From: Amanda Alves Branquinho Date: Thu, 11 Jul 2024 11:59:00 -0300 Subject: [PATCH] FIX: Allow error handling for formats besides JSON (#27811) * Allow error handling for formats besides JSON * Add a test and sets the default format as JSON --- config/routes.rb | 2 +- spec/requests/posts_controller_spec.rb | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/config/routes.rb b/config/routes.rb index 75e292fdca8..fa711559e71 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1107,7 +1107,7 @@ Discourse::Application.routes.draw do put "bookmarks/bulk" - resources :posts, only: %i[show update create destroy] do + resources :posts, only: %i[show update create destroy], defaults: { format: "json" } do delete "bookmark", to: "posts#destroy_bookmark" put "wiki" put "post_type" diff --git a/spec/requests/posts_controller_spec.rb b/spec/requests/posts_controller_spec.rb index d948d225e52..043a625b987 100644 --- a/spec/requests/posts_controller_spec.rb +++ b/spec/requests/posts_controller_spec.rb @@ -642,6 +642,24 @@ RSpec.describe PostsController do expect(post.topic.reload.category_id).not_to eq(category.id) end + describe "trying to add a link without permission" do + it "returns an error message if links are added to posts when not allowed" do + post = create_post + sign_in(post.user) + SiteSetting.post_links_allowed_groups = Group::AUTO_GROUPS[:admins] + + put "/posts/#{post.id}", + params: { + post: { + raw: "I'm editing this post to add www.linkhere.com", + }, + } + + expect(response.status).to eq(422) + expect(response.body).to include("Sorry, you can't include links in your posts.") + end + end + describe "with Post.plugin_permitted_update_params" do before do plugin = Plugin::Instance.new