From 41cb6358f9a14147c988d774a6c427a348ebd82a Mon Sep 17 00:00:00 2001 From: Clemens Schwaighofer Date: Tue, 10 Dec 2024 14:40:07 +0900 Subject: [PATCH] phpunit checks update, update edit_log logging sets --- .../CoreLibsACLLogin_database_create_data.sql | 39 +++++++++++-------- www/lib/CoreLibs/ACL/Login.php | 18 ++++++--- 2 files changed, 35 insertions(+), 22 deletions(-) diff --git a/4dev/tests/ACL/database/CoreLibsACLLogin_database_create_data.sql b/4dev/tests/ACL/database/CoreLibsACLLogin_database_create_data.sql index 9216f692..c5f4bb3c 100644 --- a/4dev/tests/ACL/database/CoreLibsACLLogin_database_create_data.sql +++ b/4dev/tests/ACL/database/CoreLibsACLLogin_database_create_data.sql @@ -651,36 +651,43 @@ CREATE TABLE edit_log ( euid INT, -- this is a foreign key, but I don't nedd to reference to it FOREIGN KEY (euid) REFERENCES edit_user (edit_user_id) MATCH FULL ON UPDATE CASCADE ON DELETE SET NULL, ecuid VARCHAR, - ecuuid UUID, + ecuuid UUID, -- this is the one we want to use, full UUIDv4 from the edit user table username VARCHAR, password VARCHAR, event_date TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP, - ip VARCHAR, + ip VARCHAR, -- just the REMOTE_IP, full set see ip_address + ip_address JSONB, -- REMOTE_IP and all other IPs (X_FORWARD, etc) as JSON block error TEXT, event TEXT, data_binary BYTEA, data TEXT, page VARCHAR, - action VARCHAR, - action_id VARCHAR, - action_sub_id VARCHAR, - action_yes VARCHAR, - action_flag VARCHAR, - action_menu VARCHAR, - action_loaded VARCHAR, - action_value VARCHAR, - action_type VARCHAR, - action_error VARCHAR, + -- various info data sets user_agent VARCHAR, referer VARCHAR, script_name VARCHAR, query_string VARCHAR, + request_scheme VARCHAR, -- http or https server_name VARCHAR, http_host VARCHAR, - http_accept VARCHAR, - http_accept_charset VARCHAR, - http_accept_encoding VARCHAR, - session_id VARCHAR + http_data JSONB, + http_accept VARCHAR, -- in http_data + http_accept_charset VARCHAR, -- in http_data + http_accept_encoding VARCHAR, -- in http_data + -- session ID if set + session_id VARCHAR. + -- any action var, -> same set in action_data as JSON + action_data JSONB, + action VARCHAR, -- in action_data + action_id VARCHAR, -- in action_data + action_sub_id VARCHAR, -- in action_data + action_yes VARCHAR, -- in action_data + action_flag VARCHAR, -- in action_data + action_menu VARCHAR, -- in action_data + action_loaded VARCHAR, -- in action_data + action_value VARCHAR, -- in action_data + action_type VARCHAR, -- in action_data + action_error VARCHAR -- in action_data ) INHERITS (edit_generic) WITHOUT OIDS; -- END: table/edit_log.sql -- START: table/edit_log_overflow.sql diff --git a/www/lib/CoreLibs/ACL/Login.php b/www/lib/CoreLibs/ACL/Login.php index 69160ce8..5b8609de 100644 --- a/www/lib/CoreLibs/ACL/Login.php +++ b/www/lib/CoreLibs/ACL/Login.php @@ -2197,9 +2197,15 @@ HTML; (string)$this->page_name, // row 2 $_SERVER["REMOTE_ADDR"] ?? null, - [ + Json::jsonConvertArrayTo([ 'REMOTE_ADDR' => $_SERVER["REMOTE_ADDR"], - ], + 'HTTP_X_FORWARDED_FOR' => !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? + explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']) + : [], + 'CLIENT_IP' => !empty($_SERVER['CLIENT_IP']) ? + explode(',', $_SERVER['CLIENT_IP']) + : [], + ]), $_SERVER['HTTP_USER_AGENT'] ?? null, $_SERVER['HTTP_REFERER'] ?? null, $_SERVER['SCRIPT_FILENAME'] ?? null, @@ -2208,17 +2214,17 @@ HTML; $_SERVER['SERVER_NAME'] ?? null, // row 3 $_SERVER['HTTP_HOST'] ?? null, - [ + Json::jsonConvertArrayTo([ 'HTTP_ACCEPT' => $_SERVER['HTTP_ACCEPT'] ?? null, 'HTTP_ACCEPT_CHARSET' => $_SERVER['HTTP_ACCEPT_CHARSET'] ?? null, 'HTTP_ACCEPT_LANGUAGE' => $_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? null, 'HTTP_ACCEPT_ENCODING' => $_SERVER['HTTP_ACCEPT_ENCODING'] ?? null, - ], + ]), $this->session->getSessionId() !== '' ? $this->session->getSessionId() : null, // row 4 // action data as JSONB - [ + Json::jsonConvertArrayTo([ 'action' => $action_set['action'] ?? null, 'action_id' => $action_set['action_id'] ?? null, 'action_sub_id' => $action_set['action_sub_id'] ?? null, @@ -2229,7 +2235,7 @@ HTML; 'action_value' => $action_set['action_value'] ?? null, 'action_type' => $action_set['action_type'] ?? null, 'action_error' => $action_set['action_error'] ?? null, - ] + ]) ], 'NULL' );