Files
tessera-ctl/apps/api/src/user/user.module.ts
T
schalli e10da76259
Tessera CI/CD / Lint & Type Check (push) Successful in 50s
Tessera CI/CD / Tests (push) Successful in 1m22s
Tessera CI/CD / Desktop-Pakete bauen (push) Successful in 19s
Tessera CI/CD / Build & Publish Images (push) Successful in 3m10s
feat(admin): eigene Vorlage fuer die Willkommensmail mit Platzhaltern, Vorschau und Testmail
Administrator -> Willkommensmail: Betreff, Ueberschrift, Einleitung, Abschluss je
Mandant (Tabelle WelcomeMailTemplate, RLS je Mandant, Migration 20260930150000);
Platzhalter {{name}} {{vorname}} {{benutzername}} {{email}} {{adresse}} {{firma}},
unbekannte -> 400 bzw. Hinweis beim Tippen; Werte escaped, Vorlage reiner Text.
Live-Vorschau per API gerendert, Testmail an die eigene Adresse ohne Token,
Zuruecksetzen auf Standard. Feste Bausteine (Kopf, Zugangsdaten, Anmeldehinweis,
Knoepfe, Fusszeile) bleiben immer drin.
Kopf: Wellenzelle dunkel statt weiss, Streifen 600x40, Inhalt 24 px naeher –
keine weisse Luecke, wenn OWA das CID-Bild nicht zeigt.
Lokal nachgewiesen: Hinweis/Sperre bei {{xyz}}, Speichern, Testmail (Link nur
/login), echte Mail mit eigener Vorlage und 7-Tage-Link.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 16:49:17 +02:00

34 lines
1.5 KiB
TypeScript

import { Module } from '@nestjs/common';
import { GroupsModule } from '../groups/groups.module';
import { MailModule } from '../mail/mail.module';
import { AdminSeedService } from './admin-seed.service';
import { UserController } from './user.controller';
import { UserService } from './user.service';
import { WelcomeMailService } from './welcome-mail.service';
import { WelcomeMailTemplateController } from './welcome-mail-template.controller';
import { WelcomeMailTemplateService } from './welcome-mail-template.service';
/**
* Importiert GroupsModule für UserService.create's Standardgruppen-
* Mitgliedschaft (D-11/D-12). GroupsModule importiert seinerseits
* UserModule nicht — GroupsService greift für Benutzerprüfungen direkt
* auf PrismaService zu, keine Zirkularität.
*
* Importiert MailModule für die Willkommensmail (`WelcomeMailService`).
* Zyklusfrei: MailModule -> SettingsModule, keiner von beiden importiert
* UserModule.
*
* Eigene Vorlage der Willkommensmail (Administrator → Willkommensmail):
* `WelcomeMailTemplateService` (Speicherung je Mandant) und
* `WelcomeMailTemplateController` (`/welcome-mail-template`) liegen hier,
* weil Vorschau und Testmail denselben Weg wie der Versand nutzen
* (`WelcomeMailService`: Adresse, Kopfbild, SMTP des Mandanten).
*/
@Module({
imports: [GroupsModule, MailModule],
controllers: [UserController, WelcomeMailTemplateController],
providers: [UserService, AdminSeedService, WelcomeMailService, WelcomeMailTemplateService],
exports: [UserService],
})
export class UserModule {}