diff --git a/app/controllers/template_folders_controller.rb b/app/controllers/template_folders_controller.rb index dd7010bb..a3418015 100644 --- a/app/controllers/template_folders_controller.rb +++ b/app/controllers/template_folders_controller.rb @@ -4,7 +4,8 @@ class TemplateFoldersController < ApplicationController load_and_authorize_resource :template_folder def show - @templates = @template_folder.templates.active.preload(:author, :template_accesses).order(id: :desc) + @templates = @template_folder.templates.active.accessible_by(current_ability) + .preload(:author, :template_accesses).order(id: :desc) @templates = Templates.search(@templates, params[:q]) @pagy, @templates = pagy(@templates, limit: 12) diff --git a/app/controllers/templates_dashboard_controller.rb b/app/controllers/templates_dashboard_controller.rb index 3a6a66df..7c806fa9 100644 --- a/app/controllers/templates_dashboard_controller.rb +++ b/app/controllers/templates_dashboard_controller.rb @@ -9,7 +9,9 @@ class TemplatesDashboardController < ApplicationController FOLDERS_PER_PAGE = 18 def index - @template_folders = filter_template_folders(@template_folders) + @template_folders = @template_folders.where(id: @templates.active.select(:folder_id)).order(id: :desc) + + @template_folders = TemplateFolders.search(@template_folders, params[:q]) @pagy, @template_folders = pagy( @template_folders, @@ -36,14 +38,6 @@ class TemplatesDashboardController < ApplicationController private - def filter_template_folders(template_folders) - rel = template_folders.joins(:active_templates) - .order(id: :desc) - .distinct - - TemplateFolders.search(rel, params[:q]) - end - def filter_templates(templates) rel = templates.active.preload(:author, :template_accesses).order(id: :desc)