feat(260911-fh9): getMe/changePassword/adminResetPassword an den Mandanten aus dem Sitzungsnachweis binden
- auth.service.ts: die drei Nach-Anmeldungs-Methoden binden je ueber genau einen Klienten tenantPrisma; adminResetPassword verweigert einem Nicht-SUPER_ADMIN das Kennwort eines SUPER_ADMIN (T-FH9-04); die drei $queryRaw-Anmeldesuchen bleiben unveraendert auf dem ungebundenen Klienten - auth.controller.ts: me/changePassword reichen user.tenantId aus dem Claim durch; adminResetPassword verzweigt ueber resolveTargetTenantId nach Rolle (ADMIN: eigener Mandant; SUPER_ADMIN: gebundener Fan-out UserService.findByIdForPlatformAdmin) — schliesst die Rechteausweitung ueber die Mandantengrenze (T-FH9-01) - auth.module.ts: importiert UserModule, zyklusfrei gemessen - auth.service.spec.ts: Identitaets-Attrappe ersetzt durch zwei unterscheidbare Klienten (__makeBoundClient); 29 Faelle, drei Falsifizierungsnachweise durchgefuehrt und zurueckgenommen Bekannt und erwartet: rls-access-inventory.spec.ts ist nach diesem Commit kurzzeitig rot (Bestandsaufnahme-Zeile auth.service.ts/user zeigt noch "gemischt", gemessen ist jetzt "gebunden") — wird in Aufgabe 3 desselben Plans geschlossen (927/928 Tests gruen, ein bekannter, in Aufgabe 3 behobener Fehlschlag, kein neuer). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AMASaSxv5QMY7RncqZriRR
This commit is contained in:
@@ -4,11 +4,24 @@ import { JwtModule } from '@nestjs/jwt';
|
||||
import { PassportModule } from '@nestjs/passport';
|
||||
import { LdapModule } from '../ldap/ldap.module';
|
||||
import { MailModule } from '../mail/mail.module';
|
||||
import { UserModule } from '../user/user.module';
|
||||
import { AuthController } from './auth.controller';
|
||||
import { AuthService } from './auth.service';
|
||||
import { JwtStrategy } from './strategies/jwt.strategy';
|
||||
import { LocalStrategy } from './strategies/local.strategy';
|
||||
|
||||
/**
|
||||
* Importiert `UserModule` fuer `AuthController.resolveTargetTenantId`
|
||||
* (260911-fh9): `adminResetPassword` loest den Mandanten der obersten
|
||||
* Rolle (SUPER_ADMIN) ueber `UserService.findByIdForPlatformAdmin` auf.
|
||||
* Zyklusfrei gemessen: `UserModule` importiert nur `GroupsModule`,
|
||||
* `GroupsModule` importiert nichts (`grep -n "imports:"
|
||||
* apps/api/src/groups/groups.module.ts`: null Treffer), und kein Modul
|
||||
* ausser `AppModule` importiert `AuthModule` (`grep -rn "AuthModule"
|
||||
* apps/api/src --include=*.module.ts`: nur `app.module.ts` und diese
|
||||
* Datei selbst). `LdapModule`, das `AuthModule` bereits importiert,
|
||||
* importiert `UserModule` unabhaengig davon selbst.
|
||||
*/
|
||||
@Module({
|
||||
imports: [
|
||||
PassportModule,
|
||||
@@ -21,6 +34,7 @@ import { LocalStrategy } from './strategies/local.strategy';
|
||||
}),
|
||||
MailModule,
|
||||
LdapModule,
|
||||
UserModule,
|
||||
],
|
||||
controllers: [AuthController],
|
||||
providers: [AuthService, LocalStrategy, JwtStrategy],
|
||||
|
||||
Reference in New Issue
Block a user