From eaede108c7f1808c5505a9b0b90d8a287e8902d6 Mon Sep 17 00:00:00 2001 From: Giuseppe Capizzi Date: Fri, 16 Aug 2013 14:24:29 +0200 Subject: [PATCH] Remove duplication from Guardian --- lib/guardian.rb | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/guardian.rb b/lib/guardian.rb index 14b3064270d..d03cd89fb82 100644 --- a/lib/guardian.rb +++ b/lib/guardian.rb @@ -46,18 +46,12 @@ class Guardian # Can the user edit the obj def can_edit?(obj) - if obj && authenticated? - edit_method = method_name_for :edit, obj - return (edit_method ? send(edit_method, obj) : true) - end + can_do?(:edit, obj) end # Can we delete the object def can_delete?(obj) - if obj && authenticated? - delete_method = method_name_for :delete, obj - return (delete_method ? send(delete_method, obj) : true) - end + can_do?(:delete, obj) end def can_moderate?(obj) @@ -428,4 +422,11 @@ class Guardian return method_name if respond_to?(method_name) end + def can_do?(action, obj) + if obj && authenticated? + action_method = method_name_for action, obj + return (action_method ? send(action_method, obj) : true) + end + end + end