From 8d96ebbc9814aa8913342cbee8914c84c405ff82 Mon Sep 17 00:00:00 2001 From: Oleksii Kriuchykhin Date: Tue, 29 Jul 2025 11:50:35 +0200 Subject: [PATCH] Fix listing of protocol templates [SCI-12174] --- .../api/v1/protocol_templates_controller.rb | 12 +++++------- app/controllers/protocols_controller.rb | 5 +++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/app/controllers/api/v1/protocol_templates_controller.rb b/app/controllers/api/v1/protocol_templates_controller.rb index 5ac827828..dc739e718 100644 --- a/app/controllers/api/v1/protocol_templates_controller.rb +++ b/app/controllers/api/v1/protocol_templates_controller.rb @@ -11,13 +11,11 @@ module Api end def index - protocol_templates = - timestamps_filter( - Protocol.latest_available_versions(@team) - ) - .readable_by_user(current_user, @team) - .page(params.dig(:page, :number)) - .per(params.dig(:page, :size)) + protocol_templates = timestamps_filter(Protocol.latest_available_versions(@team)) + # Team owners see all protocol templates in the team + protocol_templates = protocol_templates.readable_by_user(current_user, @team) unless can_manage_team?(@team) + protocol_templates = protocol_templates.page(params.dig(:page, :number)) + .per(params.dig(:page, :size)) render jsonapi: protocol_templates, each_serializer: ProtocolTemplateSerializer, rte_rendering: render_rte?, team: @team diff --git a/app/controllers/protocols_controller.rb b/app/controllers/protocols_controller.rb index 055c07639..1bf70f38b 100644 --- a/app/controllers/protocols_controller.rb +++ b/app/controllers/protocols_controller.rb @@ -85,10 +85,11 @@ class ProtocolsController < ApplicationController else current_team.repository_protocols.readable_by_user(current_user, current_team) end - render json: Lists::ProtocolsService.new(protocols, params).call, + protocols_list = Lists::ProtocolsService.new(protocols, params).call + render json: protocols_list, each_serializer: Lists::ProtocolSerializer, user: current_user, - meta: pagination_dict(protocols) + meta: pagination_dict(protocols_list) end format.html do render 'index'