diff --git a/packages/forest_admin_agent/lib/forest_admin_agent/routes/resources/list.rb b/packages/forest_admin_agent/lib/forest_admin_agent/routes/resources/list.rb index 41bbdde6b..d2fc01c3e 100644 --- a/packages/forest_admin_agent/lib/forest_admin_agent/routes/resources/list.rb +++ b/packages/forest_admin_agent/lib/forest_admin_agent/routes/resources/list.rb @@ -5,7 +5,6 @@ module Routes module Resources class List < AbstractAuthenticatedRoute include ForestAdminDatasourceToolkit::Components::Query::ConditionTree - include ForestAdminDatasourceToolkit::Validations def setup_routes add_route('forest_list', 'get', '/:collection_name', ->(args) { handle_request(args) }) @@ -31,8 +30,6 @@ def handle_request(args = {}) segment: ForestAdminAgent::Utils::QueryStringParser.parse_segment(@collection, args) ) - ConditionTreeValidator.validate(filter.condition_tree, @collection) if filter.condition_tree - projection = ForestAdminAgent::Utils::QueryStringParser.parse_projection_with_pks(@collection, args) records = @collection.list(@caller, filter, projection) diff --git a/packages/forest_admin_agent/lib/forest_admin_agent/utils/query_string_parser.rb b/packages/forest_admin_agent/lib/forest_admin_agent/utils/query_string_parser.rb index 34e5f1c2d..af88332ff 100644 --- a/packages/forest_admin_agent/lib/forest_admin_agent/utils/query_string_parser.rb +++ b/packages/forest_admin_agent/lib/forest_admin_agent/utils/query_string_parser.rb @@ -52,6 +52,7 @@ def self.parse_caller(args) )[0] token_data.delete('exp') token_data[:timezone] = timezone + token_data[:request] = { ip: args[:headers]['action_dispatch.remote_ip'].to_s } Caller.new(**token_data.transform_keys(&:to_sym)) end diff --git a/packages/forest_admin_datasource_customizer/spec/shared/caller.rb b/packages/forest_admin_datasource_customizer/spec/shared/caller.rb index d0deca570..69f3ec8a1 100644 --- a/packages/forest_admin_datasource_customizer/spec/shared/caller.rb +++ b/packages/forest_admin_datasource_customizer/spec/shared/caller.rb @@ -10,7 +10,8 @@ tags: [], timezone: 'Europe/Paris', permission_level: 'admin', - role: 'dev' + role: 'dev', + request: { ip: '127.0.0.1' } ) end end diff --git a/packages/forest_admin_datasource_toolkit/lib/forest_admin_datasource_toolkit/components/caller.rb b/packages/forest_admin_datasource_toolkit/lib/forest_admin_datasource_toolkit/components/caller.rb index 242c27653..c44eaf2ac 100644 --- a/packages/forest_admin_datasource_toolkit/lib/forest_admin_datasource_toolkit/components/caller.rb +++ b/packages/forest_admin_datasource_toolkit/lib/forest_admin_datasource_toolkit/components/caller.rb @@ -13,7 +13,8 @@ def initialize( tags:, timezone:, permission_level:, - role: nil + role: nil, + request: {} ) @id = id @email = email @@ -25,6 +26,7 @@ def initialize( @timezone = timezone @permission_level = permission_level @role = role + @request = request end end end diff --git a/packages/forest_admin_datasource_toolkit/spec/lib/forest_admin_datasource_toolkit/components/contracts/collection_contract_spec.rb b/packages/forest_admin_datasource_toolkit/spec/lib/forest_admin_datasource_toolkit/components/contracts/collection_contract_spec.rb index 4e2a07ed5..4d46d0671 100644 --- a/packages/forest_admin_datasource_toolkit/spec/lib/forest_admin_datasource_toolkit/components/contracts/collection_contract_spec.rb +++ b/packages/forest_admin_datasource_toolkit/spec/lib/forest_admin_datasource_toolkit/components/contracts/collection_contract_spec.rb @@ -18,7 +18,8 @@ module Contracts tags: {}, timezone: 'Europe/Paris', role: 1, - permission_level: 'admin' + permission_level: 'admin', + request: { ip: '127.0.0.1' } ) end diff --git a/packages/forest_admin_datasource_toolkit/spec/shared/caller.rb b/packages/forest_admin_datasource_toolkit/spec/shared/caller.rb index d0deca570..69f3ec8a1 100644 --- a/packages/forest_admin_datasource_toolkit/spec/shared/caller.rb +++ b/packages/forest_admin_datasource_toolkit/spec/shared/caller.rb @@ -10,7 +10,8 @@ tags: [], timezone: 'Europe/Paris', permission_level: 'admin', - role: 'dev' + role: 'dev', + request: { ip: '127.0.0.1' } ) end end