feat: ( permissions ) add granular CRUD, cancel and per-report keys

This commit is contained in:
Abubeker Yasin
2026-09-04 11:09:06 +03:00
parent 6eb5f2ee1e
commit 7c7f5a7a70
2 changed files with 254 additions and 0 deletions

View File

@@ -68,6 +68,87 @@ export const PASSENGER_PERMISSIONS: PassengerPermissionSeed[] = [
perm('b4e63290-cc3a-4df8-9f2a-9ff726e86e36', 'edr_passenger_app:payment_methods:view', 'View payment methods'),
perm('f9fb6af2-e869-4e6e-938c-259643393315', 'edr_passenger_app:payment_methods:manage', 'Manage payment methods'),
// ── CRUD split — create / edit / delete for every resource that has a `:manage` ───
perm('1e443b37-e4f5-458f-bfcb-7a74acb9aaed', 'edr_passenger_app:bookings:create', 'Create bookings'),
perm('a7c66e27-bad9-4459-bf89-3624d11a9f49', 'edr_passenger_app:bookings:edit', 'Edit bookings'),
perm('f8b3ef47-7f58-41c2-af77-c55905b6bcd4', 'edr_passenger_app:bookings:delete', 'Delete bookings'),
perm('2cd6e2ad-e614-49c3-bd37-2a2286659702', 'edr_passenger_app:passengers:create', 'Create passengers'),
perm('be6b1ee9-7685-4e14-bcfb-60710791dac0', 'edr_passenger_app:passengers:edit', 'Edit passengers'),
perm('f97793b5-2500-4c91-add6-785a31dd21ac', 'edr_passenger_app:passengers:delete', 'Delete passengers'),
perm('78afaaab-e004-48a7-bb91-3d8c6195a624', 'edr_passenger_app:tickets:create', 'Create tickets'),
perm('bf148b6a-d5e6-489c-823c-3cabc4d0f7db', 'edr_passenger_app:tickets:edit', 'Edit tickets'),
perm('3557699a-5eee-480e-b9c5-7a731c546c12', 'edr_passenger_app:tickets:delete', 'Delete tickets'),
perm('800dee2f-6d6a-42e2-8ad3-dffbc66508d0', 'edr_passenger_app:payments:create', 'Create payments'),
perm('3e029a68-f7d5-4857-a4de-30a8bce27e9a', 'edr_passenger_app:payments:edit', 'Edit payments'),
perm('90965ca7-976b-476f-b7bb-96b96f081e6d', 'edr_passenger_app:payments:delete', 'Delete payments'),
perm('b656ef2a-07d2-4a14-9ae5-d16fd8311430', 'edr_passenger_app:payment_methods:create', 'Create payment methods'),
perm('58fda910-afa9-45f8-8316-491a7ee66c19', 'edr_passenger_app:payment_methods:edit', 'Edit payment methods'),
perm('d37ea9a6-1003-4dea-a41b-e12d43b0b3c7', 'edr_passenger_app:payment_methods:delete', 'Delete payment methods'),
perm('ab666cff-8bf1-4664-9b5c-47ce7ad680e8', 'edr_passenger_app:stations:create', 'Create stations'),
perm('30f71070-a6ae-466f-a7fe-67d31dbec79b', 'edr_passenger_app:stations:edit', 'Edit stations'),
perm('3e0b3798-d0ec-427d-b775-452e848538c7', 'edr_passenger_app:stations:delete', 'Delete stations'),
perm('832dc94d-d8a2-4bea-8de6-75ec5cc53577', 'edr_passenger_app:trains:create', 'Create trains'),
perm('032eb29d-c9ae-4974-88f4-7aa386fd988e', 'edr_passenger_app:trains:edit', 'Edit trains'),
perm('b9eeb7a7-9bb2-441e-8780-f9bbfd361608', 'edr_passenger_app:trains:delete', 'Delete trains'),
perm('4c2b86b1-7ba4-4fbe-b317-c2f98270cdf4', 'edr_passenger_app:coaches:create', 'Create coaches'),
perm('6bedb989-06fc-4609-9a3a-f73f9bb7d878', 'edr_passenger_app:coaches:edit', 'Edit coaches'),
perm('7d01fdcf-0661-479a-ad0f-af703a479520', 'edr_passenger_app:coaches:delete', 'Delete coaches'),
perm('7da048d8-eb12-4ea3-8204-2afe3778cd77', 'edr_passenger_app:seats:create', 'Create seats'),
perm('08ec0c8d-23a3-4061-8060-78223d3b9461', 'edr_passenger_app:seats:edit', 'Edit seats'),
perm('f72d65a9-5269-49e2-bcdb-5df69869119b', 'edr_passenger_app:seats:delete', 'Delete seats'),
perm('22c8f4f2-a1a3-48a6-8546-a8adf41dfbc2', 'edr_passenger_app:classes:create', 'Create classes'),
perm('c567c887-7c69-444c-a24b-78acd20692ac', 'edr_passenger_app:classes:edit', 'Edit classes'),
perm('e858d0f4-96e1-4614-95c2-1cf8adbb2494', 'edr_passenger_app:classes:delete', 'Delete classes'),
perm('b69019ed-2e55-4452-9b99-14a42781ab33', 'edr_passenger_app:routes:create', 'Create routes'),
perm('cf708629-cd10-4dd1-b287-4d043ec1ef79', 'edr_passenger_app:routes:edit', 'Edit routes'),
perm('084ae4a0-7c86-4d60-aefd-0ad768ae7394', 'edr_passenger_app:routes:delete', 'Delete routes'),
perm('827d5b4f-8a9d-4678-807d-92fc61a640e5', 'edr_passenger_app:schedules:create', 'Create schedules'),
perm('2c65502e-adda-4f5f-a38a-d964134ea826', 'edr_passenger_app:schedules:edit', 'Edit schedules'),
perm('ab592f0d-480e-4b68-99f1-fd98573beffb', 'edr_passenger_app:schedules:delete', 'Delete schedules'),
perm('1b04a00e-0027-4e77-9f29-33b77d7b1cfc', 'edr_passenger_app:packages:create', 'Create packages'),
perm('f9124c13-2314-42ea-8836-61fe981d6398', 'edr_passenger_app:packages:edit', 'Edit packages'),
perm('2e2b9fc9-b2ca-4502-ba74-8563bce6c94c', 'edr_passenger_app:packages:delete', 'Delete packages'),
perm('1c5cb191-25d3-4d6d-8fcf-168c09c434cd', 'edr_passenger_app:inquiries:create', 'Create package inquiries'),
perm('054c8ffd-0d82-4014-ac0d-8fd2e1bc257c', 'edr_passenger_app:inquiries:edit', 'Edit package inquiries'),
perm('dac24152-465c-4c89-a547-c73ad0818e34', 'edr_passenger_app:inquiries:delete', 'Delete package inquiries'),
perm('aa5bf1ee-5771-4008-a8c7-fd30cb112727', 'edr_passenger_app:tariff_rates:create', 'Create tariff rates'),
perm('24a53bea-cfcf-4ddf-a156-a3f4ca90ac1c', 'edr_passenger_app:tariff_rates:edit', 'Edit tariff rates'),
perm('540a9fe9-bd4e-4d9d-acbf-6a00762e4929', 'edr_passenger_app:tariff_rates:delete', 'Delete tariff rates'),
perm('cabb6e6d-3ba4-455e-b19b-eccdb60c9bca', 'edr_passenger_app:fraud:create', 'Create fraud rules'),
perm('a9a6942f-8ba0-4b33-abc2-0d4c25d62e26', 'edr_passenger_app:fraud:edit', 'Edit fraud rules'),
perm('9415abe7-0c11-4e8c-b59b-4e07d18ba649', 'edr_passenger_app:fraud:delete', 'Delete fraud rules'),
perm('5e8eaf85-d453-48fe-91ae-4bf2f6a8716f', 'edr_passenger_app:agents:create', 'Create agents'),
perm('763bbe62-53e7-494c-8a8e-553c52bdfb29', 'edr_passenger_app:agents:edit', 'Edit agents'),
perm('4fe4088f-fa55-4117-bd71-305a65f69056', 'edr_passenger_app:agents:delete', 'Delete agents'),
perm('6a678100-4dce-4fda-9cdb-7f75ffa1f187', 'edr_passenger_app:currencies:create', 'Create currencies'),
perm('c1d66663-6077-4199-9e2e-00b254e5a954', 'edr_passenger_app:currencies:edit', 'Edit currencies'),
perm('8c1295e8-fa77-4ab7-9684-e55fa970010c', 'edr_passenger_app:currencies:delete', 'Delete currencies'),
// ── Domain actions that create/edit/delete cannot express ───────────────────────
perm('2ce6d0e3-3426-4424-a239-3ddf95b001c4', 'edr_passenger_app:schedules:cancel', 'Cancel schedules'),
perm('045d3f55-d5fc-4ef4-8d4f-949496b77c25', 'edr_passenger_app:seats:block', 'Block and unblock seats'),
perm('8ac8f5de-26b0-469b-993e-2abfa005d223', 'edr_passenger_app:packages:publish', 'Activate and deactivate packages'),
// ── Schedule fares — split out of `schedules:manage` ────────────────────────────
perm('7e7406b3-77dc-422a-b5de-a8286f973b38', 'edr_passenger_app:schedule_fares:view', 'View schedule fares'),
perm('c4c205a1-06d4-4a60-a2cd-c06f4732a733', 'edr_passenger_app:schedule_fares:create', 'Create schedule fares'),
perm('516f8fe2-792d-4f4a-a1d4-ea1a0bd759e2', 'edr_passenger_app:schedule_fares:edit', 'Edit schedule fares'),
perm('30e8aa00-e32d-492e-bfbe-ee8fe1e9ad24', 'edr_passenger_app:schedule_fares:delete', 'Delete schedule fares'),
perm('d358ede2-0c19-48d2-92a6-aa54fa91086d', 'edr_passenger_app:schedule_fares:manage', 'Manage schedule fares'),
// ── Per-report permissions — `reports:view` stays the all-reports umbrella ──────
perm('69cf2f52-e8be-447e-90fa-9d4f12d77824', 'edr_passenger_app:reports_overall:view', 'View overall report'),
perm('d4229615-1a7a-40c1-a8da-5fbc9681f8da', 'edr_passenger_app:reports_finance:view', 'View finance summary report'),
perm('a8291a6f-bd38-4be2-a9e5-0b3036242bd5', 'edr_passenger_app:reports_finance:export', 'Export finance summary report'),
perm('d50fd4ec-1914-48e2-ade2-056d3d97a79b', 'edr_passenger_app:reports_coach_utilization:view', 'View coach utilization report'),
perm('aa0c3321-ff08-4c7e-8e0f-24042c68c8a8', 'edr_passenger_app:reports_seat_status:view', 'View seat status report'),
perm('0ea7547f-d8a0-448c-a0d8-9341cd00383a', 'edr_passenger_app:reports_blocked_seats:view', 'View blocked seat revenue loss report'),
perm('4855be9b-23ac-4f27-8c5f-2a18974afeb7', 'edr_passenger_app:reports_blocked_seats:export', 'Export blocked seat revenue loss report'),
perm('8fec9101-4a7b-4089-b4cf-a252ca80481a', 'edr_passenger_app:reports_passengers:view', 'View passengers report'),
perm('744f6cd0-cbef-4beb-8afe-180866e3a4a2', 'edr_passenger_app:reports_boarding:view', 'View boarding report'),
perm('2a8fb77e-4bf6-42e0-80ca-53ca142b1b23', 'edr_passenger_app:reports_payments:view', 'View payments report'),
perm('3476bbe6-47f5-4040-8b3c-88b417b1c0c2', 'edr_passenger_app:reports_catalog:view', 'View generated report catalog'),
perm('49fd28cd-5b58-4403-8e53-1df4b93cbbd2', 'edr_passenger_app:admin', 'Full admin access'),
];
@@ -79,19 +160,31 @@ export const PASSENGER_PERMS = {
manage: 'edr_passenger_app:bookings:manage',
cancel: 'edr_passenger_app:bookings:cancel',
reschedule: 'edr_passenger_app:bookings:reschedule',
create: 'edr_passenger_app:bookings:create',
edit: 'edr_passenger_app:bookings:edit',
delete: 'edr_passenger_app:bookings:delete',
},
passengers: {
view: 'edr_passenger_app:passengers:view',
manage: 'edr_passenger_app:passengers:manage',
create: 'edr_passenger_app:passengers:create',
edit: 'edr_passenger_app:passengers:edit',
delete: 'edr_passenger_app:passengers:delete',
},
tickets: {
view: 'edr_passenger_app:tickets:view',
manage: 'edr_passenger_app:tickets:manage',
generate: 'edr_passenger_app:tickets:generate',
create: 'edr_passenger_app:tickets:create',
edit: 'edr_passenger_app:tickets:edit',
delete: 'edr_passenger_app:tickets:delete',
},
payments: {
view: 'edr_passenger_app:payments:view',
manage: 'edr_passenger_app:payments:manage',
create: 'edr_passenger_app:payments:create',
edit: 'edr_passenger_app:payments:edit',
delete: 'edr_passenger_app:payments:delete',
// legacy keys — retained as aliases for backward compatibility
viewAll: 'edr_passenger_app:payments:view_all',
refund: 'edr_passenger_app:payments:refund',
@@ -100,53 +193,126 @@ export const PASSENGER_PERMS = {
paymentMethods: {
view: 'edr_passenger_app:payment_methods:view',
manage: 'edr_passenger_app:payment_methods:manage',
create: 'edr_passenger_app:payment_methods:create',
edit: 'edr_passenger_app:payment_methods:edit',
delete: 'edr_passenger_app:payment_methods:delete',
},
stations: {
view: 'edr_passenger_app:stations:view',
manage: 'edr_passenger_app:stations:manage',
create: 'edr_passenger_app:stations:create',
edit: 'edr_passenger_app:stations:edit',
delete: 'edr_passenger_app:stations:delete',
},
trains: {
view: 'edr_passenger_app:trains:view',
manage: 'edr_passenger_app:trains:manage',
create: 'edr_passenger_app:trains:create',
edit: 'edr_passenger_app:trains:edit',
delete: 'edr_passenger_app:trains:delete',
},
coaches: {
view: 'edr_passenger_app:coaches:view',
manage: 'edr_passenger_app:coaches:manage',
create: 'edr_passenger_app:coaches:create',
edit: 'edr_passenger_app:coaches:edit',
delete: 'edr_passenger_app:coaches:delete',
},
seats: {
view: 'edr_passenger_app:seats:view',
manage: 'edr_passenger_app:seats:manage',
create: 'edr_passenger_app:seats:create',
edit: 'edr_passenger_app:seats:edit',
delete: 'edr_passenger_app:seats:delete',
block: 'edr_passenger_app:seats:block',
},
classes: {
view: 'edr_passenger_app:classes:view',
manage: 'edr_passenger_app:classes:manage',
create: 'edr_passenger_app:classes:create',
edit: 'edr_passenger_app:classes:edit',
delete: 'edr_passenger_app:classes:delete',
},
routes: {
view: 'edr_passenger_app:routes:view',
manage: 'edr_passenger_app:routes:manage',
create: 'edr_passenger_app:routes:create',
edit: 'edr_passenger_app:routes:edit',
delete: 'edr_passenger_app:routes:delete',
},
schedules: {
view: 'edr_passenger_app:schedules:view',
manage: 'edr_passenger_app:schedules:manage',
create: 'edr_passenger_app:schedules:create',
edit: 'edr_passenger_app:schedules:edit',
delete: 'edr_passenger_app:schedules:delete',
cancel: 'edr_passenger_app:schedules:cancel',
},
/**
* Fare rules hanging off /schedules. Split out of `schedules:manage` so editing a
* timetable and changing a price are separate grants. Guards keep `schedules.manage`
* in the OR array so today's fare editors are not locked out.
*/
scheduleFares: {
view: 'edr_passenger_app:schedule_fares:view',
manage: 'edr_passenger_app:schedule_fares:manage',
create: 'edr_passenger_app:schedule_fares:create',
edit: 'edr_passenger_app:schedule_fares:edit',
delete: 'edr_passenger_app:schedule_fares:delete',
},
packages: {
view: 'edr_passenger_app:packages:view',
manage: 'edr_passenger_app:packages:manage',
create: 'edr_passenger_app:packages:create',
edit: 'edr_passenger_app:packages:edit',
delete: 'edr_passenger_app:packages:delete',
publish: 'edr_passenger_app:packages:publish',
},
inquiries: {
view: 'edr_passenger_app:inquiries:view',
manage: 'edr_passenger_app:inquiries:manage',
create: 'edr_passenger_app:inquiries:create',
edit: 'edr_passenger_app:inquiries:edit',
delete: 'edr_passenger_app:inquiries:delete',
},
tariffRates: {
view: 'edr_passenger_app:tariff_rates:view',
manage: 'edr_passenger_app:tariff_rates:manage',
create: 'edr_passenger_app:tariff_rates:create',
edit: 'edr_passenger_app:tariff_rates:edit',
delete: 'edr_passenger_app:tariff_rates:delete',
},
reports: {
/**
* The all-reports umbrella. Kept as a plain string — `reports.controller.ts` and the
* `finance` / `financeManager` / `director` presets depend on it — and kept in every
* per-report guard array so existing holders keep seeing every report.
*/
view: 'edr_passenger_app:reports:view',
// Per-report keys. Grant these instead of `view` to hand out a subset.
overall: { view: 'edr_passenger_app:reports_overall:view' },
finance: {
view: 'edr_passenger_app:reports_finance:view',
export: 'edr_passenger_app:reports_finance:export',
},
coachUtilization: { view: 'edr_passenger_app:reports_coach_utilization:view' },
seatStatus: { view: 'edr_passenger_app:reports_seat_status:view' },
blockedSeats: {
view: 'edr_passenger_app:reports_blocked_seats:view',
export: 'edr_passenger_app:reports_blocked_seats:export',
},
passengers: { view: 'edr_passenger_app:reports_passengers:view' },
boarding: { view: 'edr_passenger_app:reports_boarding:view' },
payments: { view: 'edr_passenger_app:reports_payments:view' },
catalog: { view: 'edr_passenger_app:reports_catalog:view' },
},
fraud: {
view: 'edr_passenger_app:fraud:view',
manage: 'edr_passenger_app:fraud:manage',
create: 'edr_passenger_app:fraud:create',
edit: 'edr_passenger_app:fraud:edit',
delete: 'edr_passenger_app:fraud:delete',
},
audit: {
view: 'edr_passenger_app:audit:view',
@@ -154,10 +320,16 @@ export const PASSENGER_PERMS = {
agents: {
view: 'edr_passenger_app:agents:view',
manage: 'edr_passenger_app:agents:manage',
create: 'edr_passenger_app:agents:create',
edit: 'edr_passenger_app:agents:edit',
delete: 'edr_passenger_app:agents:delete',
},
currencies: {
view: 'edr_passenger_app:currencies:view',
manage: 'edr_passenger_app:currencies:manage',
create: 'edr_passenger_app:currencies:create',
edit: 'edr_passenger_app:currencies:edit',
delete: 'edr_passenger_app:currencies:delete',
},
notifications: {
send: 'edr_passenger_app:notifications:send',

View File

@@ -4,65 +4,118 @@ export const PERMS = {
view: 'edr_passenger_app:bookings:view',
manage: 'edr_passenger_app:bookings:manage',
cancel: 'edr_passenger_app:bookings:cancel',
reschedule: 'edr_passenger_app:bookings:reschedule',
create: 'edr_passenger_app:bookings:create',
edit: 'edr_passenger_app:bookings:edit',
delete: 'edr_passenger_app:bookings:delete',
},
passengers: {
view: 'edr_passenger_app:passengers:view',
manage: 'edr_passenger_app:passengers:manage',
create: 'edr_passenger_app:passengers:create',
edit: 'edr_passenger_app:passengers:edit',
delete: 'edr_passenger_app:passengers:delete',
},
tickets: {
view: 'edr_passenger_app:tickets:view',
manage: 'edr_passenger_app:tickets:manage',
generate: 'edr_passenger_app:tickets:generate',
create: 'edr_passenger_app:tickets:create',
edit: 'edr_passenger_app:tickets:edit',
delete: 'edr_passenger_app:tickets:delete',
},
// ── Master Data ────────────────────────────────────────────────
stations: {
view: 'edr_passenger_app:stations:view',
manage: 'edr_passenger_app:stations:manage',
create: 'edr_passenger_app:stations:create',
edit: 'edr_passenger_app:stations:edit',
delete: 'edr_passenger_app:stations:delete',
},
trains: {
view: 'edr_passenger_app:trains:view',
manage: 'edr_passenger_app:trains:manage',
create: 'edr_passenger_app:trains:create',
edit: 'edr_passenger_app:trains:edit',
delete: 'edr_passenger_app:trains:delete',
},
coaches: {
view: 'edr_passenger_app:coaches:view',
manage: 'edr_passenger_app:coaches:manage',
create: 'edr_passenger_app:coaches:create',
edit: 'edr_passenger_app:coaches:edit',
delete: 'edr_passenger_app:coaches:delete',
},
seats: {
view: 'edr_passenger_app:seats:view',
manage: 'edr_passenger_app:seats:manage',
create: 'edr_passenger_app:seats:create',
edit: 'edr_passenger_app:seats:edit',
delete: 'edr_passenger_app:seats:delete',
block: 'edr_passenger_app:seats:block',
},
classes: {
view: 'edr_passenger_app:classes:view',
manage: 'edr_passenger_app:classes:manage',
create: 'edr_passenger_app:classes:create',
edit: 'edr_passenger_app:classes:edit',
delete: 'edr_passenger_app:classes:delete',
},
routes: {
view: 'edr_passenger_app:routes:view',
manage: 'edr_passenger_app:routes:manage',
create: 'edr_passenger_app:routes:create',
edit: 'edr_passenger_app:routes:edit',
delete: 'edr_passenger_app:routes:delete',
},
schedules: {
view: 'edr_passenger_app:schedules:view',
manage: 'edr_passenger_app:schedules:manage',
create: 'edr_passenger_app:schedules:create',
edit: 'edr_passenger_app:schedules:edit',
delete: 'edr_passenger_app:schedules:delete',
cancel: 'edr_passenger_app:schedules:cancel',
},
scheduleFares: {
view: 'edr_passenger_app:schedule_fares:view',
manage: 'edr_passenger_app:schedule_fares:manage',
create: 'edr_passenger_app:schedule_fares:create',
edit: 'edr_passenger_app:schedule_fares:edit',
delete: 'edr_passenger_app:schedule_fares:delete',
},
// ── Tourism ────────────────────────────────────────────────────
packages: {
view: 'edr_passenger_app:packages:view',
manage: 'edr_passenger_app:packages:manage',
create: 'edr_passenger_app:packages:create',
edit: 'edr_passenger_app:packages:edit',
delete: 'edr_passenger_app:packages:delete',
publish: 'edr_passenger_app:packages:publish',
},
inquiries: {
view: 'edr_passenger_app:inquiries:view',
manage: 'edr_passenger_app:inquiries:manage',
create: 'edr_passenger_app:inquiries:create',
edit: 'edr_passenger_app:inquiries:edit',
delete: 'edr_passenger_app:inquiries:delete',
},
// ── Finance ────────────────────────────────────────────────────
tariffRates: {
view: 'edr_passenger_app:tariff_rates:view',
manage: 'edr_passenger_app:tariff_rates:manage',
create: 'edr_passenger_app:tariff_rates:create',
edit: 'edr_passenger_app:tariff_rates:edit',
delete: 'edr_passenger_app:tariff_rates:delete',
},
payments: {
view: 'edr_passenger_app:payments:view',
manage: 'edr_passenger_app:payments:manage',
create: 'edr_passenger_app:payments:create',
edit: 'edr_passenger_app:payments:edit',
delete: 'edr_passenger_app:payments:delete',
// legacy aliases — still honoured by the backend guards
viewAll: 'edr_passenger_app:payments:view_all',
refund: 'edr_passenger_app:payments:refund',
@@ -71,18 +124,44 @@ export const PERMS = {
paymentMethods: {
view: 'edr_passenger_app:payment_methods:view',
manage: 'edr_passenger_app:payment_methods:manage',
create: 'edr_passenger_app:payment_methods:create',
edit: 'edr_passenger_app:payment_methods:edit',
delete: 'edr_passenger_app:payment_methods:delete',
},
currencies: {
view: 'edr_passenger_app:currencies:view',
manage: 'edr_passenger_app:currencies:manage',
create: 'edr_passenger_app:currencies:create',
edit: 'edr_passenger_app:currencies:edit',
delete: 'edr_passenger_app:currencies:delete',
},
reports: {
// all-reports umbrella — kept, and kept in every per-report guard array
view: 'edr_passenger_app:reports:view',
overall: { view: 'edr_passenger_app:reports_overall:view' },
finance: {
view: 'edr_passenger_app:reports_finance:view',
export: 'edr_passenger_app:reports_finance:export',
},
coachUtilization: { view: 'edr_passenger_app:reports_coach_utilization:view' },
seatStatus: { view: 'edr_passenger_app:reports_seat_status:view' },
blockedSeats: {
view: 'edr_passenger_app:reports_blocked_seats:view',
export: 'edr_passenger_app:reports_blocked_seats:export',
},
passengers: { view: 'edr_passenger_app:reports_passengers:view' },
boarding: { view: 'edr_passenger_app:reports_boarding:view' },
payments: { view: 'edr_passenger_app:reports_payments:view' },
catalog: { view: 'edr_passenger_app:reports_catalog:view' },
},
fraud: {
view: 'edr_passenger_app:fraud:view',
manage: 'edr_passenger_app:fraud:manage',
create: 'edr_passenger_app:fraud:create',
edit: 'edr_passenger_app:fraud:edit',
delete: 'edr_passenger_app:fraud:delete',
},
audit: {
view: 'edr_passenger_app:audit:view',
@@ -90,6 +169,9 @@ export const PERMS = {
agents: {
view: 'edr_passenger_app:agents:view',
manage: 'edr_passenger_app:agents:manage',
create: 'edr_passenger_app:agents:create',
edit: 'edr_passenger_app:agents:edit',
delete: 'edr_passenger_app:agents:delete',
},
notifications: {
send: 'edr_passenger_app:notifications:send',