From aaf5d1ba380a6feba47c8d9a906ee90d00539cc8 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Sun, 26 Dec 2021 15:10:00 +0000 Subject: [PATCH] Patch CanCan deprecated keyword arguments Solves an issue with use of deprecated positional args. The version of CanCan which fixes this is not currently compatible with OFN... --- config/initializers/cancancan.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 config/initializers/cancancan.rb diff --git a/config/initializers/cancancan.rb b/config/initializers/cancancan.rb new file mode 100644 index 0000000000..a0dc46e905 --- /dev/null +++ b/config/initializers/cancancan.rb @@ -0,0 +1,12 @@ +module CanCanUnauthorizedMessage + # Fix deprecated syntax calling I18n#translate (using keyword args) without using ** + def unauthorized_message(action, subject) + keys = unauthorized_message_keys(action, subject) + variables = {:action => action.to_s} + variables[:subject] = (subject.class == Class ? subject : subject.class).to_s.underscore.humanize.downcase + message = I18n.translate(nil, **variables.merge(:scope => :unauthorized, :default => keys + [""])) + message.blank? ? nil : message + end +end + +CanCan::Ability.prepend(CanCanUnauthorizedMessage)