mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-27 11:01:56 +02:00
* Rename files to mjs * Rename test files to mjs * Update CODEOWNERS * Update files to ESM * Update test files to ESM * Update RestoreManager.test.mjs * Remove unused `AdminAuthorizationHelper` mock and stub * Remove unnecessary return GitOrigin-RevId: 2b9ef126de1d8964afbc6e5641cca36712655866
58 lines
1.2 KiB
JavaScript
58 lines
1.2 KiB
JavaScript
import logger from '@overleaf/logger'
|
|
import { ProjectAuditLogEntry } from '../../models/ProjectAuditLogEntry.js'
|
|
import { callbackify } from '@overleaf/promise-utils'
|
|
|
|
export default {
|
|
promises: {
|
|
addEntry,
|
|
},
|
|
addEntry: callbackify(addEntry), // callback version of addEntry
|
|
addEntryInBackground,
|
|
}
|
|
|
|
/**
|
|
* Add an audit log entry
|
|
*
|
|
* The entry should include at least the following fields:
|
|
*
|
|
* - operation: a string identifying the type of operation
|
|
* - userId: the user on behalf of whom the operation was performed
|
|
* - message: a string detailing what happened
|
|
*/
|
|
async function addEntry(
|
|
projectId,
|
|
operation,
|
|
initiatorId,
|
|
ipAddress,
|
|
info = {}
|
|
) {
|
|
const entry = {
|
|
projectId,
|
|
operation,
|
|
initiatorId,
|
|
ipAddress,
|
|
info,
|
|
}
|
|
await ProjectAuditLogEntry.create(entry)
|
|
}
|
|
|
|
/**
|
|
* Add an audit log entry in the background
|
|
*
|
|
* This function doesn't return a promise. Instead, it catches any error and logs it.
|
|
*/
|
|
function addEntryInBackground(
|
|
projectId,
|
|
operation,
|
|
initiatorId,
|
|
ipAddress,
|
|
info = {}
|
|
) {
|
|
addEntry(projectId, operation, initiatorId, ipAddress, info).catch(err => {
|
|
logger.error(
|
|
{ err, projectId, operation, initiatorId, ipAddress, info },
|
|
'Failed to write audit log'
|
|
)
|
|
})
|
|
}
|