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

@@ -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',