aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/application_controller.rb2
-rw-r--r--app/controllers/line_footnotes_controller.rb2
-rw-r--r--app/policies/application_policy.rb23
3 files changed, 19 insertions, 8 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 42b7c2a25..8fcaa3b1b 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -19,7 +19,7 @@ class ApplicationController < ActionController::Base
end
def pundit_user
- UserContext.new(current_user, referential: self.try(:current_referential))
+ UserContext.new(current_user, referential: @referential)
end
protected
diff --git a/app/controllers/line_footnotes_controller.rb b/app/controllers/line_footnotes_controller.rb
index c42aa785b..6a9048392 100644
--- a/app/controllers/line_footnotes_controller.rb
+++ b/app/controllers/line_footnotes_controller.rb
@@ -34,7 +34,7 @@ class LineFootnotesController < BreadcrumbController
private
def resource
@referential = Referential.find params[:referential_id]
- @line = @referential.lines.find params[:line_id]
+ @line = @referential.lines.find params[:line_id]
end
def line_params
diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb
index a863404ae..f2521fa44 100644
--- a/app/policies/application_policy.rb
+++ b/app/policies/application_policy.rb
@@ -1,18 +1,19 @@
class ApplicationPolicy
- attr_reader :user, :record
+ attr_reader :current_referential, :record, :user
def initialize(user_context, record)
- @user = user_context.user
- @referential = user_context.context[:referential]
- @record = record
+ @user = user_context.user
+ @current_referential = user_context.context[:referential]
+ @record = record
end
def archived?
- !!referential.try(:archived_at)
+ return @is_archived if instance_variable_defined?(:@is_archived)
+ @is_archived = is_archived
end
def referential
- @referential ||= record_referential
+ @referential ||= current_referential || record_referential
end
def record_referential
@@ -77,4 +78,14 @@ class ApplicationPolicy
scope
end
end
+
+ private
+ def is_archived
+ !!case referential
+ when Referential
+ referential.archived_at
+ else
+ current_referential.try(:archived_at)
+ end
+ end
end