complete new audit system

This commit is contained in:
2026-03-21 18:23:54 +01:00
parent 4f359df161
commit 219e1930f7
159 changed files with 2841 additions and 736 deletions
+36 -2
View File
@@ -32,12 +32,17 @@ var __importStar = (this && this.__importStar) || (function () {
return result;
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAllSettings = getAllSettings;
exports.getPublicSettings = getPublicSettings;
exports.updateSetting = updateSetting;
exports.updateSettings = updateSettings;
const prisma_js_1 = __importDefault(require("../lib/prisma.js"));
const appSettingService = __importStar(require("../services/appSetting.service.js"));
const audit_service_js_1 = require("../services/audit.service.js");
async function getAllSettings(req, res) {
try {
const settings = await appSettingService.getAllSettings();
@@ -73,7 +78,20 @@ async function updateSetting(req, res) {
});
return;
}
await appSettingService.setSetting(key, String(value));
// Vorherigen Stand laden für Audit
const before = await prisma_js_1.default.appSetting.findUnique({ where: { key } });
const oldValue = before?.value ?? '-';
const newValue = String(value);
await appSettingService.setSetting(key, newValue);
const label = oldValue !== newValue
? `Einstellung "${key}" geändert: ${oldValue}${newValue}`
: `Einstellung "${key}" geändert`;
await (0, audit_service_js_1.logChange)({
req, action: 'UPDATE', resourceType: 'AppSetting',
resourceId: key,
label,
details: oldValue !== newValue ? { [key]: { von: oldValue, nach: newValue } } : undefined,
});
res.json({ success: true, message: 'Einstellung gespeichert' });
}
catch (error) {
@@ -93,9 +111,25 @@ async function updateSettings(req, res) {
});
return;
}
// Vorherige Werte laden für Audit
const changes = {};
for (const [key, value] of Object.entries(settings)) {
await appSettingService.setSetting(key, String(value));
const before = await prisma_js_1.default.appSetting.findUnique({ where: { key } });
const oldValue = before?.value ?? '-';
const newValue = String(value);
if (oldValue !== newValue) {
changes[key] = { von: oldValue, nach: newValue };
}
await appSettingService.setSetting(key, newValue);
}
const changeList = Object.entries(changes).map(([k, c]) => `${k}: ${c.von}${c.nach}`).join(', ');
await (0, audit_service_js_1.logChange)({
req, action: 'UPDATE', resourceType: 'AppSetting',
label: changeList
? `Einstellungen aktualisiert: ${changeList}`
: `Einstellungen aktualisiert (${Object.keys(settings).join(', ')})`,
details: Object.keys(changes).length > 0 ? changes : undefined,
});
res.json({ success: true, message: 'Einstellungen gespeichert' });
}
catch (error) {