From 5317ca0d192e2a2a860243085a81b32d4fdc5baa Mon Sep 17 00:00:00 2001 From: Abubeker Yasin Date: Sun, 19 Jul 2026 18:57:31 +0300 Subject: [PATCH] feat: ( users ) seed ticket officer and director users --- apps/edr-passenger-api/src/seed/edr-passenger.seed.ts | 5 +++++ .../src/seed/passenger-permissions.registry.ts | 9 +++++++++ .../src/seed/passenger-staff-users.seeder.ts | 2 ++ 3 files changed, 16 insertions(+) diff --git a/apps/edr-passenger-api/src/seed/edr-passenger.seed.ts b/apps/edr-passenger-api/src/seed/edr-passenger.seed.ts index 4313d5426..2c5b780fc 100644 --- a/apps/edr-passenger-api/src/seed/edr-passenger.seed.ts +++ b/apps/edr-passenger-api/src/seed/edr-passenger.seed.ts @@ -69,4 +69,9 @@ export const EDR_PASSENGER_ROLES: PassengerSeedRole[] = [ name: { en: 'EDR Passenger Finance Manager' }, permissionKeys: [...ROLE_PERMISSION_PRESETS.financeManager], }, + { + key: 'edr_passenger_director', + name: { en: 'EDR Passenger Director' }, + permissionKeys: [...ROLE_PERMISSION_PRESETS.director], + }, ]; diff --git a/apps/edr-passenger-api/src/seed/passenger-permissions.registry.ts b/apps/edr-passenger-api/src/seed/passenger-permissions.registry.ts index 05235e3a8..82cc62ef6 100644 --- a/apps/edr-passenger-api/src/seed/passenger-permissions.registry.ts +++ b/apps/edr-passenger-api/src/seed/passenger-permissions.registry.ts @@ -166,9 +166,18 @@ export const PASSENGER_PERMS = { admin: 'edr_passenger_app:admin', } as const; +// Every view-only permission (`:view` and `:view_all`), derived from the registry +// so newly-added view permissions are automatically included. +export const PASSENGER_VIEW_PERMISSION_KEYS = PASSENGER_PERMISSION_KEYS.filter( + (key) => key.endsWith(':view') || key.endsWith(':view_all'), +); + export const ROLE_PERMISSION_PRESETS = { backofficeAdmin: [...PASSENGER_PERMISSION_KEYS], + // Director: read-only across the whole app — can view every resource, cannot manage/mutate anything. + director: [...PASSENGER_VIEW_PERMISSION_KEYS], + stationMaster: [ PASSENGER_PERMS.bookings.view, PASSENGER_PERMS.bookings.manage, diff --git a/apps/edr-passenger-api/src/seed/passenger-staff-users.seeder.ts b/apps/edr-passenger-api/src/seed/passenger-staff-users.seeder.ts index 9e5ef560e..03b7cf6a4 100644 --- a/apps/edr-passenger-api/src/seed/passenger-staff-users.seeder.ts +++ b/apps/edr-passenger-api/src/seed/passenger-staff-users.seeder.ts @@ -20,6 +20,8 @@ const STAFF_USERS = [ { email: 'passenger.staff@edr.local', username: 'passenger_staff', roleKey: 'edr_passenger_backoffice_staff' }, { email: 'passenger.agent@edr.local', username: 'passenger_agent', roleKey: 'edr_passenger_agent' }, { email: 'passenger.finance@edr.local', username: 'passenger_finance', roleKey: 'edr_passenger_finance' }, + { email: 'passenger.director@edr.local', username: 'passenger_director', roleKey: 'edr_passenger_director' }, + { email: 'passenger.ticketofficer@edr.local', username: 'passenger_ticket_officer', roleKey: 'edr_passenger_ticket_officer' }, ] as const; @Injectable()