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