Mercurial > hg > orthanc-databases
changeset 713:004d853bdf69 sql-opti
fix compatibility with older SDK
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 08 Aug 2025 17:51:05 +0200 |
parents | 6267904345ad |
children | c1b73bf5c122 |
files | Framework/Plugins/DatabaseBackendAdapterV4.cpp |
diffstat | 1 files changed, 59 insertions(+), 42 deletions(-) [+] |
line wrap: on
line diff
--- a/Framework/Plugins/DatabaseBackendAdapterV4.cpp Fri Aug 08 17:36:54 2025 +0200 +++ b/Framework/Plugins/DatabaseBackendAdapterV4.cpp Fri Aug 08 17:51:05 2025 +0200 @@ -1532,19 +1532,25 @@ const void* logData, uint32_t logDataSize) { - if (!isBackendInUse_ || connectionPool_ == NULL) + if (!isBackendInUse_ || + connectionPool_ == NULL) { throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); } - BaseIndexConnectionsPool::Accessor accessor(*connectionPool_); - accessor.GetBackend().RecordAuditLog(accessor.GetManager(), - userId, - resourceType, - resourceId, - action, - logData, - logDataSize); +#if ORTHANC_PLUGINS_HAS_AUDIT_LOGS == 1 + { + BaseIndexConnectionsPool::Accessor accessor(*connectionPool_); + accessor.GetBackend().RecordAuditLog(accessor.GetManager(), + userId, + resourceType, + resourceId, + action, + logData, + logDataSize); + } +#endif + return OrthancPluginErrorCode_Success; } @@ -1565,9 +1571,9 @@ std::string userIdFilter; std::string resourceIdFilter; std::string actionFilter; + uint64_t since = 0; uint64_t limit = 0; - uint64_t fromTs = 0; uint64_t toTs = 0; @@ -1606,45 +1612,56 @@ toTs = boost::lexical_cast<uint64_t>(getArguments["to-timestamp"]); } - std::list<IDatabaseBackend::AuditLog> logs; + // note: right now, we assume the logData is always JSON + Json::Value jsonLogs; - BaseIndexConnectionsPool::Accessor accessor(*connectionPool_); - accessor.GetBackend().GetAuditLogs(accessor.GetManager(), - logs, - userIdFilter, - resourceIdFilter, - actionFilter, - fromTs, toTs, - since, limit); - - // note: right now, we assume the logData is always Json - Json::Value jsonLogs; - - for (std::list<IDatabaseBackend::AuditLog>::const_iterator it = logs.begin(); it != logs.end(); ++it) +#if ORTHANC_PLUGINS_HAS_AUDIT_LOGS == 1 { - Json::Value serializedAuditLog; - serializedAuditLog["Timestamp"] = it->timeStamp; - serializedAuditLog["UserId"] = it->userId; - serializedAuditLog["ResourceId"] = it->resourceId; - serializedAuditLog["ResourceType"] = it->resourceType; - serializedAuditLog["Action"] = it->action; - - if (it->logData.empty()) + std::list<IDatabaseBackend::AuditLog> logs; + + BaseIndexConnectionsPool::Accessor accessor(*connectionPool_); + accessor.GetBackend().GetAuditLogs(accessor.GetManager(), + logs, + userIdFilter, + resourceIdFilter, + actionFilter, + fromTs, toTs, + since, limit); + + for (std::list<IDatabaseBackend::AuditLog>::const_iterator it = logs.begin(); it != logs.end(); ++it) { - serializedAuditLog["LogData"] = Json::nullValue; + Json::Value serializedAuditLog; + serializedAuditLog["Timestamp"] = it->timeStamp; + serializedAuditLog["UserId"] = it->userId; + serializedAuditLog["ResourceId"] = it->resourceId; + serializedAuditLog["ResourceType"] = it->resourceType; + serializedAuditLog["Action"] = it->action; + + if (it->logData.empty()) + { + serializedAuditLog["LogData"] = Json::nullValue; + } + else + { + Json::Value logData; + Orthanc::Toolbox::ReadJson(logData, it->logData); + serializedAuditLog["LogData"] = logData; + } + + jsonLogs.append(serializedAuditLog); } - else - { - Json::Value logData; - Orthanc::Toolbox::ReadJson(logData, it->logData); - serializedAuditLog["LogData"] = logData; - } - - jsonLogs.append(serializedAuditLog); } +#else + { + // Disable warnings about unused variables if audit logs are unavailable in the SDK + (void) since; + (void) limit; + (void) fromTs; + (void) toTs; + } +#endif OrthancPlugins::AnswerJson(jsonLogs, output); - } void DatabaseBackendAdapterV4::Register(IndexBackend* backend,