From 310e68de8726419f6aba2cbbf049c6bf69d283ca Mon Sep 17 00:00:00 2001 From: Fabian Engelniederhammer <92720311+fengelniederhammer@users.noreply.github.com> Date: Mon, 7 Oct 2024 11:54:16 +0200 Subject: [PATCH] feat(backend): audit log when someone sets data use terms (#2959) --- .../service/datauseterms/DataUseTermsDatabaseService.kt | 7 +++++++ .../backend/service/submission/UploadDatabaseService.kt | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/backend/src/main/kotlin/org/loculus/backend/service/datauseterms/DataUseTermsDatabaseService.kt b/backend/src/main/kotlin/org/loculus/backend/service/datauseterms/DataUseTermsDatabaseService.kt index 6b712d2e3..54acad99c 100644 --- a/backend/src/main/kotlin/org/loculus/backend/service/datauseterms/DataUseTermsDatabaseService.kt +++ b/backend/src/main/kotlin/org/loculus/backend/service/datauseterms/DataUseTermsDatabaseService.kt @@ -10,6 +10,7 @@ import org.loculus.backend.api.DataUseTermsHistoryEntry import org.loculus.backend.api.DataUseTermsType import org.loculus.backend.auth.AuthenticatedUser import org.loculus.backend.controller.NotFoundException +import org.loculus.backend.log.AuditLogger import org.loculus.backend.service.submission.AccessionPreconditionValidator import org.loculus.backend.utils.Accession import org.springframework.stereotype.Service @@ -20,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional class DataUseTermsDatabaseService( private val accessionPreconditionValidator: AccessionPreconditionValidator, private val dataUseTermsPreconditionValidator: DataUseTermsPreconditionValidator, + private val auditLogger: AuditLogger, ) { fun setNewDataUseTerms( @@ -47,6 +49,11 @@ class DataUseTermsDatabaseService( } this[DataUseTermsTable.userNameColumn] = authenticatedUser.username } + + auditLogger.log( + username = authenticatedUser.username, + description = "Set data use terms to $newDataUseTerms for accessions ${accessions.joinToString()}", + ) } fun getDataUseTermsHistory(accession: Accession): List { diff --git a/backend/src/main/kotlin/org/loculus/backend/service/submission/UploadDatabaseService.kt b/backend/src/main/kotlin/org/loculus/backend/service/submission/UploadDatabaseService.kt index f21ef89c9..17cff685b 100644 --- a/backend/src/main/kotlin/org/loculus/backend/service/submission/UploadDatabaseService.kt +++ b/backend/src/main/kotlin/org/loculus/backend/service/submission/UploadDatabaseService.kt @@ -189,6 +189,7 @@ class UploadDatabaseService( } ?: emptyList() if (submissionParams is SubmissionParams.OriginalSubmissionParams) { + log.debug { "Setting data use terms for submission $uploadId to ${submissionParams.dataUseTerms}" } dataUseTermsDatabaseService.setNewDataUseTerms( submissionParams.authenticatedUser, insertionResult.map { it.accession }, @@ -197,8 +198,8 @@ class UploadDatabaseService( } auditLogger.log( - submissionParams.authenticatedUser.username, - "Submitted or revised ${insertionResult.size} sequences: " + + username = submissionParams.authenticatedUser.username, + description = "Submitted or revised ${insertionResult.size} sequences: " + insertionResult.joinToString { it.displayAccessionVersion() }, )