added backup and email client
This commit is contained in:
@@ -1,7 +1,22 @@
|
||||
import { Router } from 'express';
|
||||
import multer from 'multer';
|
||||
import * as appSettingController from '../controllers/appSetting.controller.js';
|
||||
import * as backupController from '../controllers/backup.controller.js';
|
||||
import { authenticate, requirePermission } from '../middleware/auth.js';
|
||||
|
||||
// Multer für Backup-Upload (in Memory speichern)
|
||||
const backupUpload = multer({
|
||||
storage: multer.memoryStorage(),
|
||||
limits: { fileSize: 500 * 1024 * 1024 }, // 500MB max
|
||||
fileFilter: (req, file, cb) => {
|
||||
if (file.mimetype === 'application/zip' || file.originalname.endsWith('.zip')) {
|
||||
cb(null, true);
|
||||
} else {
|
||||
cb(new Error('Nur ZIP-Dateien sind erlaubt'));
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
const router = Router();
|
||||
|
||||
// Öffentliche Einstellungen (für alle authentifizierten Benutzer, inkl. Kunden)
|
||||
@@ -26,4 +41,63 @@ router.put(
|
||||
appSettingController.updateSettings
|
||||
);
|
||||
|
||||
// ==================== BACKUP & RESTORE ====================
|
||||
|
||||
// Liste aller Backups
|
||||
router.get(
|
||||
'/backups',
|
||||
authenticate,
|
||||
requirePermission('settings:update'),
|
||||
backupController.listBackups
|
||||
);
|
||||
|
||||
// Neues Backup erstellen
|
||||
router.post(
|
||||
'/backup',
|
||||
authenticate,
|
||||
requirePermission('settings:update'),
|
||||
backupController.createBackup
|
||||
);
|
||||
|
||||
// Backup wiederherstellen
|
||||
router.post(
|
||||
'/backup/:name/restore',
|
||||
authenticate,
|
||||
requirePermission('settings:update'),
|
||||
backupController.restoreBackup
|
||||
);
|
||||
|
||||
// Backup löschen
|
||||
router.delete(
|
||||
'/backup/:name',
|
||||
authenticate,
|
||||
requirePermission('settings:update'),
|
||||
backupController.deleteBackup
|
||||
);
|
||||
|
||||
// Backup als ZIP herunterladen
|
||||
router.get(
|
||||
'/backup/:name/download',
|
||||
authenticate,
|
||||
requirePermission('settings:update'),
|
||||
backupController.downloadBackup
|
||||
);
|
||||
|
||||
// Backup-ZIP hochladen
|
||||
router.post(
|
||||
'/backup/upload',
|
||||
authenticate,
|
||||
requirePermission('settings:update'),
|
||||
backupUpload.single('backup'),
|
||||
backupController.uploadBackup
|
||||
);
|
||||
|
||||
// Werkseinstellungen (alles löschen)
|
||||
router.post(
|
||||
'/factory-reset',
|
||||
authenticate,
|
||||
requirePermission('settings:update'),
|
||||
backupController.factoryReset
|
||||
);
|
||||
|
||||
export default router;
|
||||
|
||||
Reference in New Issue
Block a user