From: Claire Date: Wed, 20 Jul 2022 15:06:52 +0000 (+0200) Subject: Fix /api/v1/tags/:id route constraints (#18854) X-Git-Url: https://git.xn--scling-oua.cat.family/?a=commitdiff_plain;h=8fa52393e71967cac3d6f601f2f755def167e114;p=mastodon.git Fix /api/v1/tags/:id route constraints (#18854) The constraint was applied prior to decoding, and rejected anything containing the '%' character, which would be used for anything with non-ASCII unicode characters. --- diff --git a/app/controllers/api/v1/tags_controller.rb b/app/controllers/api/v1/tags_controller.rb index d45015ff5..9e5c53330 100644 --- a/app/controllers/api/v1/tags_controller.rb +++ b/app/controllers/api/v1/tags_controller.rb @@ -24,6 +24,7 @@ class Api::V1::TagsController < Api::BaseController private def set_or_create_tag + return not_found unless /\A(#{Tag::HASHTAG_NAME_RE})\z/.match?(params[:id]) @tag = Tag.find_normalized(params[:id]) || Tag.new(name: Tag.normalize(params[:id]), display_name: params[:id]) end end diff --git a/config/routes.rb b/config/routes.rb index 3c467f24a..52ba0956a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -554,7 +554,7 @@ Rails.application.routes.draw do resource :note, only: :create, controller: 'accounts/notes' end - resources :tags, only: [:show], constraints: { id: /#{Tag::HASHTAG_NAME_RE}/ } do + resources :tags, only: [:show] do member do post :follow post :unfollow