// Die Providerkonfiguration hat eigene Rechte (`email-providers:*`). // // Bis 09/2026 gateten diese Routen auf `settings:read`/`settings:update` - // wer irgendeine Einstellung aendern durfte, konnte damit auch die // Zugangsdaten des Mailservers auslesen und aendern. `email-providers:*` // stand derweil im Katalog und bewachte nichts. // // BEWUSST NICHT umgestellt: /domain und /public-settings (ungegatet, werden // vom Kundenportal beim Postfach-Antrag gebraucht) sowie check/provision/ // deprovision - das sind kundenbezogene Vorgaenge auf `customers:*`, keine // Providerkonfiguration. `email-providers:*` waere dort die falsche Domaene. // ==================== EMAIL PROVIDER ROUTES ==================== import { Router } from 'express'; import * as emailProviderController from '../controllers/emailProvider.controller.js'; import { authenticate, requirePermission } from '../middleware/auth.js'; const router = Router(); // Provider Config CRUD (Admin-only) router.get('/configs', authenticate, requirePermission('email-providers:read'), emailProviderController.getProviderConfigs); router.get('/configs/:id', authenticate, requirePermission('email-providers:read'), emailProviderController.getProviderConfig); router.post('/configs', authenticate, requirePermission('email-providers:create'), emailProviderController.createProviderConfig); router.put('/configs/:id', authenticate, requirePermission('email-providers:update'), emailProviderController.updateProviderConfig); router.delete('/configs/:id', authenticate, requirePermission('email-providers:delete'), emailProviderController.deleteProviderConfig); // Email Operations router.post('/test-connection', authenticate, requirePermission('email-providers:update'), emailProviderController.testConnection); router.post('/test-mail-access', authenticate, requirePermission('email-providers:update'), emailProviderController.testMailAccess); router.get('/domain', authenticate, emailProviderController.getProviderDomain); router.get('/public-settings', authenticate, emailProviderController.getPublicSettings); router.get('/check/:localPart', authenticate, requirePermission('customers:read'), emailProviderController.checkEmailExists); router.post('/provision', authenticate, requirePermission('customers:update'), emailProviderController.provisionEmail); router.delete('/deprovision/:localPart', authenticate, requirePermission('customers:update'), emailProviderController.deprovisionEmail); export default router;