Skip to content

Commit 58e4b3d

Browse files
committed
Support STI models in #accessible_action?
1 parent f728741 commit 58e4b3d

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

app/helpers/administrate/application_helper.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def accessible_action?(target, action_name)
5252
target.is_a?(ActiveRecord::Base) ? target.class : target
5353

5454
existing_action?(target_class_or_class_name, action_name) &&
55-
authorized_action?(target, action_name)
55+
authorized_action?(target, action_name) || superclass_accessible_action?(target, action_name)
5656
end
5757

5858
def display_resource_name(resource_name, opts = {})
@@ -97,5 +97,12 @@ def default_resource_name(name, opts = {})
9797
resource_name = (opts[:singular] ? name.to_s : name.to_s.pluralize)
9898
resource_name.tr("/", "_").titleize
9999
end
100+
101+
def superclass_accessible_action?(target, action_name)
102+
return false unless target.is_a?(ActiveRecord::Base)
103+
return false unless target.class.superclass <= target.class.base_class
104+
105+
accessible_action?(target.becomes(target.class.superclass), action_name)
106+
end
100107
end
101108
end

0 commit comments

Comments
 (0)