From 779f05ef0e0109e3d47ac7a156132a38961e6ef6 Mon Sep 17 00:00:00 2001 From: Douwe Maan Date: Fri, 17 Apr 2015 12:49:20 +0200 Subject: Explain skip_before_filter workaround. --- app/controllers/projects/uploads_controller.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/controllers/projects/uploads_controller.rb b/app/controllers/projects/uploads_controller.rb index c43d82f1288..276dced8656 100644 --- a/app/controllers/projects/uploads_controller.rb +++ b/app/controllers/projects/uploads_controller.rb @@ -1,8 +1,11 @@ class Projects::UploadsController < Projects::ApplicationController layout 'project' - skip_before_filter :authenticate_user!, :reject_blocked!, :project, :repository, only: [:show] - before_filter :authenticate_user!, :reject_blocked!, :project, :repository, only: [:show], unless: :image? + # We want to skip these filters for only the `show` action if `image?` is true, + # but `skip_before_filter` doesn't work with both `only` and `if`, so we accomplish the same like this. + skipped_filters = [:authenticate_user!, :reject_blocked!, :project, :repository] + skip_before_filter *skipped_filters, only: [:show] + before_filter *skipped_filters, only: [:show], unless: :image? def create link_to_file = ::Projects::UploadService.new(project, params[:file]). -- cgit v1.2.1