diff --git a/app/controllers/administrate/application_controller.rb b/app/controllers/administrate/application_controller.rb index 1b4dc3d5de..45defda2d6 100644 --- a/app/controllers/administrate/application_controller.rb +++ b/app/controllers/administrate/application_controller.rb @@ -9,6 +9,7 @@ def index resources = apply_collection_includes(resources) resources = order.apply(resources) resources = paginate_resources(resources) + @resources = resources page = Administrate::Page::Collection.new(dashboard, order: order) render locals: { @@ -26,7 +27,7 @@ def show end def new - resource = new_resource + @new_resource = resource = new_resource authorize_resource(resource) render locals: { page: Administrate::Page::Form.new(dashboard, resource), @@ -40,7 +41,7 @@ def edit end def create - resource = new_resource(resource_params) + @new_resource = resource = new_resource(resource_params) authorize_resource(resource) if resource.save diff --git a/spec/example_app/app/controllers/admin/application_controller.rb b/spec/example_app/app/controllers/admin/application_controller.rb index 1cb06541a9..0827a30534 100644 --- a/spec/example_app/app/controllers/admin/application_controller.rb +++ b/spec/example_app/app/controllers/admin/application_controller.rb @@ -32,5 +32,23 @@ def authenticate_admin def pundit_user @current_user end + + after_action :audit_log, only: [:create, :update, :destroy] + + def audit_log + if resource = @requested_resource || @new_resource + Rails.logger.info( + sprintf( + "Audit Log: %s %s #%d by %s at %s", + action_name.capitalize, + resource.class, + resource.id, + pundit_user.name, + Time.zone.now.to_s + ) + ) + end + end + end end