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
+11 -9
View File
@@ -1,22 +1,24 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = require("express");
const client_1 = require("@prisma/client");
const prisma_js_1 = __importDefault(require("../lib/prisma.js"));
const auth_js_1 = require("../middleware/auth.js");
const router = (0, express_1.Router)();
const prisma = new client_1.PrismaClient();
// Setup-Endpunkt: Erstellt die developer:access Permission und fügt sie der Admin-Rolle hinzu
// Dieser Endpunkt erfordert keine Authentifizierung, da er nur einmalig zum Setup verwendet wird
router.post('/setup', async (req, res) => {
try {
// Create or get the developer:access permission
const developerPerm = await prisma.permission.upsert({
const developerPerm = await prisma_js_1.default.permission.upsert({
where: { resource_action: { resource: 'developer', action: 'access' } },
update: {},
create: { resource: 'developer', action: 'access' },
});
// Get the Admin role
const adminRole = await prisma.role.findUnique({
const adminRole = await prisma_js_1.default.role.findUnique({
where: { name: 'Admin' },
include: { permissions: true },
});
@@ -27,7 +29,7 @@ router.post('/setup', async (req, res) => {
// Check if Admin already has this permission
const hasPermission = adminRole.permissions.some((rp) => rp.permissionId === developerPerm.id);
if (!hasPermission) {
await prisma.rolePermission.create({
await prisma_js_1.default.rolePermission.create({
data: {
roleId: adminRole.id,
permissionId: developerPerm.id,
@@ -286,7 +288,7 @@ router.get('/table/:tableName', auth_js_1.authenticate, (0, auth_js_1.requirePer
}
const skip = (parseInt(page) - 1) * parseInt(limit);
const take = parseInt(limit);
const model = prisma[meta.model];
const model = prisma_js_1.default[meta.model];
const [data, total] = await Promise.all([
model.findMany({
skip,
@@ -339,7 +341,7 @@ router.put('/table/:tableName/:id', auth_js_1.authenticate, (0, auth_js_1.requir
return;
}
}
const model = prisma[meta.model];
const model = prisma_js_1.default[meta.model];
// Composite Primary Key Handling
let where;
if (meta.primaryKey.includes(',')) {
@@ -381,7 +383,7 @@ router.delete('/table/:tableName/:id', auth_js_1.authenticate, (0, auth_js_1.req
res.status(404).json({ success: false, error: 'Tabelle nicht gefunden' });
return;
}
const model = prisma[meta.model];
const model = prisma_js_1.default[meta.model];
// Composite Primary Key Handling
let where;
if (meta.primaryKey.includes(',')) {
@@ -439,7 +441,7 @@ router.get('/reference/:tableName', auth_js_1.authenticate, (0, auth_js_1.requir
res.status(404).json({ success: false, error: 'Tabelle nicht gefunden' });
return;
}
const model = prisma[meta.model];
const model = prisma_js_1.default[meta.model];
const data = await model.findMany({
take: parseInt(limit),
});