complete new audit system

This commit is contained in:
2026-03-21 18:23:54 +01:00
parent 38b3b7da73
commit fd55742c57
159 changed files with 2841 additions and 736 deletions
+20 -18
View File
@@ -1,4 +1,7 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEmailsByCustomerId = getEmailsByCustomerId;
exports.getEmailsWithMailboxByCustomerId = getEmailsWithMailboxByCustomerId;
@@ -11,24 +14,23 @@ exports.enableMailbox = enableMailbox;
exports.syncMailboxStatus = syncMailboxStatus;
exports.getDecryptedPassword = getDecryptedPassword;
exports.resetMailboxPassword = resetMailboxPassword;
const client_1 = require("@prisma/client");
const prisma_js_1 = __importDefault(require("../lib/prisma.js"));
const encryption_js_1 = require("../utils/encryption.js");
const emailProviderService_js_1 = require("./emailProvider/emailProviderService.js");
const passwordGenerator_js_1 = require("../utils/passwordGenerator.js");
const prisma = new client_1.PrismaClient();
async function getEmailsByCustomerId(customerId, includeInactive = false) {
const where = { customerId };
if (!includeInactive) {
where.isActive = true;
}
return prisma.stressfreiEmail.findMany({
return prisma_js_1.default.stressfreiEmail.findMany({
where,
orderBy: { createdAt: 'desc' },
});
}
// Mit Mailbox-Status für E-Mail-Client
async function getEmailsWithMailboxByCustomerId(customerId) {
return prisma.stressfreiEmail.findMany({
return prisma_js_1.default.stressfreiEmail.findMany({
where: {
customerId,
isActive: true,
@@ -49,13 +51,13 @@ async function getEmailsWithMailboxByCustomerId(customerId) {
});
}
async function getEmailById(id) {
return prisma.stressfreiEmail.findUnique({
return prisma_js_1.default.stressfreiEmail.findUnique({
where: { id },
});
}
// E-Mail mit Mailbox-Status laden
async function getEmailWithMailboxById(id) {
return prisma.stressfreiEmail.findUnique({
return prisma_js_1.default.stressfreiEmail.findUnique({
where: { id },
select: {
id: true,
@@ -76,7 +78,7 @@ async function createEmail(data) {
// Falls beim Provider anlegen gewünscht
if (provisionAtProvider) {
// Kunde laden für Weiterleitung
const customer = await prisma.customer.findUnique({
const customer = await prisma_js_1.default.customer.findUnique({
where: { id: data.customerId },
select: { email: true },
});
@@ -94,7 +96,7 @@ async function createEmail(data) {
}
// Passwort verschlüsseln und speichern
const passwordEncrypted = (0, encryption_js_1.encrypt)(password);
return prisma.stressfreiEmail.create({
return prisma_js_1.default.stressfreiEmail.create({
data: {
...emailData,
isActive: true,
@@ -111,7 +113,7 @@ async function createEmail(data) {
}
}
}
return prisma.stressfreiEmail.create({
return prisma_js_1.default.stressfreiEmail.create({
data: {
...emailData,
isActive: true,
@@ -120,17 +122,17 @@ async function createEmail(data) {
});
}
async function updateEmail(id, data) {
return prisma.stressfreiEmail.update({
return prisma_js_1.default.stressfreiEmail.update({
where: { id },
data,
});
}
async function deleteEmail(id) {
return prisma.stressfreiEmail.delete({ where: { id } });
return prisma_js_1.default.stressfreiEmail.delete({ where: { id } });
}
// Mailbox nachträglich aktivieren (für existierende E-Mail-Weiterleitung)
async function enableMailbox(id) {
const stressfreiEmail = await prisma.stressfreiEmail.findUnique({
const stressfreiEmail = await prisma_js_1.default.stressfreiEmail.findUnique({
where: { id },
});
if (!stressfreiEmail) {
@@ -148,7 +150,7 @@ async function enableMailbox(id) {
}
// Passwort verschlüsseln und speichern
const passwordEncrypted = (0, encryption_js_1.encrypt)(password);
await prisma.stressfreiEmail.update({
await prisma_js_1.default.stressfreiEmail.update({
where: { id },
data: {
hasMailbox: true,
@@ -159,7 +161,7 @@ async function enableMailbox(id) {
}
// Mailbox-Status mit Provider synchronisieren
async function syncMailboxStatus(id) {
const stressfreiEmail = await prisma.stressfreiEmail.findUnique({
const stressfreiEmail = await prisma_js_1.default.stressfreiEmail.findUnique({
where: { id },
select: { email: true, hasMailbox: true },
});
@@ -175,7 +177,7 @@ async function syncMailboxStatus(id) {
const providerHasMailbox = providerStatus.hasMailbox === true;
// DB aktualisieren wenn Status abweicht
if (stressfreiEmail.hasMailbox !== providerHasMailbox) {
await prisma.stressfreiEmail.update({
await prisma_js_1.default.stressfreiEmail.update({
where: { id },
data: { hasMailbox: providerHasMailbox },
});
@@ -186,7 +188,7 @@ async function syncMailboxStatus(id) {
}
// Passwort für IMAP/SMTP-Zugang entschlüsseln (nur für autorisierte Nutzung)
async function getDecryptedPassword(id) {
const stressfreiEmail = await prisma.stressfreiEmail.findUnique({
const stressfreiEmail = await prisma_js_1.default.stressfreiEmail.findUnique({
where: { id },
select: { emailPasswordEncrypted: true },
});
@@ -203,7 +205,7 @@ async function getDecryptedPassword(id) {
}
// Passwort neu generieren und beim Provider setzen
async function resetMailboxPassword(id) {
const stressfreiEmail = await prisma.stressfreiEmail.findUnique({
const stressfreiEmail = await prisma_js_1.default.stressfreiEmail.findUnique({
where: { id },
select: { email: true, hasMailbox: true },
});
@@ -223,7 +225,7 @@ async function resetMailboxPassword(id) {
}
// Passwort verschlüsseln und lokal speichern
const passwordEncrypted = (0, encryption_js_1.encrypt)(newPassword);
await prisma.stressfreiEmail.update({
await prisma_js_1.default.stressfreiEmail.update({
where: { id },
data: { emailPasswordEncrypted: passwordEncrypted },
});