lib/godmin/helpers/application.rb
module Godmin
module Helpers
module Application
# Renders the provided partial with locals if it exists, otherwise
# yields the given block. The lookup context call is cached for
# each partial.
def partial_override(partial, locals = {}, &block)
@_partial_override ||= {}
unless @_partial_override.key?(partial)
@_partial_override[partial] = lookup_context.exists?(partial, nil, true)
end
if @_partial_override[partial]
render partial: partial, locals: locals
else
capture(&block)
end
end
# Wraps the policy helper so that it is always accessible, even when
# authorization is not enabled. When that is the case, it returns a
# policy that always returns true.
def policy(resource)
if authorization_enabled?
super(resource)
else
Authorization::Policy.new(nil, nil, default: true)
end
end
end
end
end