mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-07 05:55:02 +00:00
feat: ( permissions ) add granular CRUD, cancel and per-report keys
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user