Mercurial > hg > orthanc-databases
changeset 729:9f41a8c94f9c
fix audit-logs API
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Wed, 13 Aug 2025 09:57:38 +0200 |
parents | 5d6ce8e26dec |
children | ae6dabec9af7 94fd54721752 |
files | Framework/Plugins/DatabaseBackendAdapterV4.cpp Framework/Plugins/IDatabaseBackend.h Framework/Plugins/IndexBackend.cpp Framework/Plugins/IndexBackend.h |
diffstat | 4 files changed, 17 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/Framework/Plugins/DatabaseBackendAdapterV4.cpp Tue Aug 12 15:27:09 2025 +0200 +++ b/Framework/Plugins/DatabaseBackendAdapterV4.cpp Wed Aug 13 09:57:38 2025 +0200 @@ -1576,8 +1576,8 @@ uint64_t since = 0; uint64_t limit = 0; - uint64_t fromTs = 0; - uint64_t toTs = 0; + std::string fromTsIsoFormat; + std::string toTsIsoFormat; bool logDataInJson = false; if (getArguments.find("user-id") != getArguments.end()) @@ -1607,12 +1607,12 @@ if (getArguments.find("from-timestamp") != getArguments.end()) { - fromTs = boost::lexical_cast<uint64_t>(getArguments["from-timestamp"]); + fromTsIsoFormat = getArguments["from-timestamp"]; } if (getArguments.find("to-timestamp") != getArguments.end()) { - toTs = boost::lexical_cast<uint64_t>(getArguments["to-timestamp"]); + toTsIsoFormat = getArguments["to-timestamp"]; } if (getArguments.find("log-data-format") != getArguments.end()) @@ -1644,7 +1644,7 @@ userIdFilter, resourceIdFilter, actionFilter, - fromTs, toTs, + fromTsIsoFormat, toTsIsoFormat, since, limit); for (std::list<IDatabaseBackend::AuditLog>::const_iterator it = logs.begin(); it != logs.end(); ++it)
--- a/Framework/Plugins/IDatabaseBackend.h Tue Aug 12 15:27:09 2025 +0200 +++ b/Framework/Plugins/IDatabaseBackend.h Wed Aug 13 09:57:38 2025 +0200 @@ -550,8 +550,8 @@ const std::string& userIdFilter, const std::string& resourceIdFilter, const std::string& actionFilter, - uint64_t fromTs, - uint64_t toTs, + const std::string& fromTsIsoFormat, + const std::string& toTsIsoFormat, uint64_t since, uint64_t limit) = 0; #endif
--- a/Framework/Plugins/IndexBackend.cpp Tue Aug 12 15:27:09 2025 +0200 +++ b/Framework/Plugins/IndexBackend.cpp Wed Aug 13 09:57:38 2025 +0200 @@ -4729,8 +4729,8 @@ const std::string& userIdFilter, const std::string& resourceIdFilter, const std::string& actionFilter, - uint64_t fromTs, - uint64_t toTs, + const std::string& fromTsIsoFormat, + const std::string& toTsIsoFormat, uint64_t since, uint64_t limit) { @@ -4754,14 +4754,14 @@ filters.push_back("action = " + formatter.GenerateParameter(actionFilter)); } - if (fromTs > 0) + if (!fromTsIsoFormat.empty()) { - filters.push_back("ts >= " + formatter.GenerateParameter(fromTs)); + filters.push_back("ts >= " + formatter.GenerateParameter(fromTsIsoFormat) + "::TIMESTAMPTZ"); } - if (toTs > 0) + if (!toTsIsoFormat.empty()) { - filters.push_back("ts < " + formatter.GenerateParameter(toTs)); + filters.push_back("ts < " + formatter.GenerateParameter(toTsIsoFormat) + "::TIMESTAMPTZ"); } if (filters.size() > 0) @@ -4771,13 +4771,13 @@ sql += " WHERE " + joinedFilters; } + sql += " ORDER BY ts ASC "; + if (since > 0 || limit > 0) { sql += formatter.FormatLimits(since, limit); } - sql += " ORDER BY ts ASC"; - DatabaseManager::CachedStatement statement(STATEMENT_FROM_HERE_DYNAMIC(sql), manager, sql); statement.SetReadOnly(true);
--- a/Framework/Plugins/IndexBackend.h Tue Aug 12 15:27:09 2025 +0200 +++ b/Framework/Plugins/IndexBackend.h Wed Aug 13 09:57:38 2025 +0200 @@ -536,8 +536,8 @@ const std::string& userIdFilter, const std::string& resourceIdFilter, const std::string& actionFilter, - uint64_t fromTs, - uint64_t toTs, + const std::string& fromTsIsoFormat, + const std::string& toTsIsoFormat, uint64_t since, uint64_t limit) ORTHANC_OVERRIDE; #endif