fix: export guard dependencies so cross-module @UseGuards resolves
NestJS resolves a guard referenced via @UseGuards(SomeGuard) using the consuming module's injector, not the guard's own declaring module's injector. OidcAuthGuard and TripMembershipGuard are shared across several feature modules, so every constructor dependency they need (UsersRepository/UsersService, TripMembersRepository, etc.) must be re-exported by AuthModule/TripsLibModule/UsersLibModule, not just the guard classes themselves. Found via the Phase 02 end-to-end smoke test against a mocked IdP, which failed to boot the API before this fix.
This commit is contained in:
@@ -1,11 +1,12 @@
|
|||||||
import { Module } from '@nestjs/common';
|
import { Global, Module } from '@nestjs/common';
|
||||||
import { UsersLibModule } from '../../users/src';
|
import { UsersLibModule } from '../../users/src';
|
||||||
import { OidcDiscoveryService } from './oidc-discovery.service';
|
import { OidcDiscoveryService } from './oidc-discovery.service';
|
||||||
import { OidcAuthGuard } from './oidc-auth.guard';
|
import { OidcAuthGuard } from './oidc-auth.guard';
|
||||||
|
|
||||||
|
@Global()
|
||||||
@Module({
|
@Module({
|
||||||
imports: [UsersLibModule],
|
imports: [UsersLibModule],
|
||||||
providers: [OidcDiscoveryService, OidcAuthGuard],
|
providers: [OidcDiscoveryService, OidcAuthGuard],
|
||||||
exports: [OidcDiscoveryService, OidcAuthGuard],
|
exports: [OidcDiscoveryService, OidcAuthGuard, UsersLibModule],
|
||||||
})
|
})
|
||||||
export class AuthModule {}
|
export class AuthModule {}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Module } from '@nestjs/common';
|
import { Global, Module } from '@nestjs/common';
|
||||||
import { DatabaseModule } from '../../database/src';
|
import { DatabaseModule } from '../../database/src';
|
||||||
import { TripsRepository } from './trips.repository';
|
import { TripsRepository } from './trips.repository';
|
||||||
import { TripsService } from './trips.service';
|
import { TripsService } from './trips.service';
|
||||||
@@ -14,6 +14,7 @@ import { TravelersService } from './travelers.service';
|
|||||||
import { TripPreferenceOverridesRepository } from './trip-preference-overrides.repository';
|
import { TripPreferenceOverridesRepository } from './trip-preference-overrides.repository';
|
||||||
import { TripPreferenceOverridesService } from './trip-preference-overrides.service';
|
import { TripPreferenceOverridesService } from './trip-preference-overrides.service';
|
||||||
|
|
||||||
|
@Global()
|
||||||
@Module({
|
@Module({
|
||||||
imports: [DatabaseModule],
|
imports: [DatabaseModule],
|
||||||
providers: [
|
providers: [
|
||||||
@@ -32,12 +33,18 @@ import { TripPreferenceOverridesService } from './trip-preference-overrides.serv
|
|||||||
TripPreferenceOverridesService,
|
TripPreferenceOverridesService,
|
||||||
],
|
],
|
||||||
exports: [
|
exports: [
|
||||||
|
TripsRepository,
|
||||||
TripsService,
|
TripsService,
|
||||||
|
TripSettingsRepository,
|
||||||
TripSettingsService,
|
TripSettingsService,
|
||||||
|
TripMembersRepository,
|
||||||
TripMembersService,
|
TripMembersService,
|
||||||
TripMembershipGuard,
|
TripMembershipGuard,
|
||||||
|
TripInvitationsRepository,
|
||||||
TripInvitationsService,
|
TripInvitationsService,
|
||||||
|
TravelersRepository,
|
||||||
TravelersService,
|
TravelersService,
|
||||||
|
TripPreferenceOverridesRepository,
|
||||||
TripPreferenceOverridesService,
|
TripPreferenceOverridesService,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -13,6 +13,11 @@ import { UserPreferencesService } from './user-preferences.service';
|
|||||||
UserPreferencesRepository,
|
UserPreferencesRepository,
|
||||||
UserPreferencesService,
|
UserPreferencesService,
|
||||||
],
|
],
|
||||||
exports: [UsersService, UserPreferencesService],
|
exports: [
|
||||||
|
UsersRepository,
|
||||||
|
UsersService,
|
||||||
|
UserPreferencesRepository,
|
||||||
|
UserPreferencesService,
|
||||||
|
],
|
||||||
})
|
})
|
||||||
export class UsersLibModule {}
|
export class UsersLibModule {}
|
||||||
|
|||||||
Reference in New Issue
Block a user