From 0a54b63420a539cc437e4ba59cc20a808af6c4a4 Mon Sep 17 00:00:00 2001 From: dbwinger Date: Thu, 3 Mar 2022 00:26:54 -0500 Subject: [PATCH] Send language_id to Api::PagesController#index so Pages can be restricted to the language of the page. . --- .../alchemy/api/pages_controller.rb | 6 ++- .../essences/_essence_page_editor.html.erb | 2 +- .../alchemy/api/pages_controller_spec.rb | 40 +++++++++++++++---- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/app/controllers/alchemy/api/pages_controller.rb b/app/controllers/alchemy/api/pages_controller.rb index a133cfe7b0..dcef0bf0b8 100644 --- a/app/controllers/alchemy/api/pages_controller.rb +++ b/app/controllers/alchemy/api/pages_controller.rb @@ -7,12 +7,14 @@ class Api::PagesController < Api::BaseController # Returns all pages as json object # def index + language = Alchemy::Language.find_by(id: params[:language_id]) || Alchemy::Language.current + # Fix for cancancan not able to merge multiple AR scopes for logged in users if cannot? :edit_content, Alchemy::Page @pages = Alchemy::Page.accessible_by(current_ability, :index) - @pages = @pages.where(language: Language.current) + @pages = @pages.where(language: language) else - @pages = Language.current&.pages.presence || Alchemy::Page.none + @pages = language&.pages.presence || Alchemy::Page.none end @pages = @pages.includes(*page_includes) @pages = @pages.ransack(params[:q]).result diff --git a/app/views/alchemy/essences/_essence_page_editor.html.erb b/app/views/alchemy/essences/_essence_page_editor.html.erb index 4dbf0727c6..41765f0425 100644 --- a/app/views/alchemy/essences/_essence_page_editor.html.erb +++ b/app/views/alchemy/essences/_essence_page_editor.html.erb @@ -14,7 +14,7 @@