mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-07 05:55:02 +00:00
fix: ( permissions) accept payments:manage for luggage charges
This commit is contained in:
@@ -22,7 +22,14 @@ import { PASSENGER_PERMS } from '../../seed/passenger-permissions.registry';
|
||||
* included — could raise a charge.
|
||||
*/
|
||||
const CanCharge = () =>
|
||||
PassengerStaff([PASSENGER_PERMS.excessBaggage.charge, PASSENGER_PERMS.bookings.manage, PASSENGER_PERMS.admin]);
|
||||
PassengerStaff([
|
||||
PASSENGER_PERMS.excessBaggage.charge,
|
||||
// Same shape as the supplementary-charge guard in payments.controller.ts: both bill a
|
||||
// passenger and send them a pay link, so whoever manages payments can do either.
|
||||
PASSENGER_PERMS.payments.manage,
|
||||
PASSENGER_PERMS.bookings.manage,
|
||||
PASSENGER_PERMS.admin,
|
||||
]);
|
||||
|
||||
class UpsertBaggageAllowanceDto {
|
||||
@IsString() seatClassId: string;
|
||||
|
||||
@@ -10,7 +10,7 @@ import Modal from '@/components/ui/Modal';
|
||||
import { excessBaggageApi, apiClient, bookingsApi } from '@/lib/api';
|
||||
import { formatDateTime, formatCurrency } from '@/lib/utils';
|
||||
import { useAuthStore } from '@/lib/auth-store';
|
||||
import { useWritePermission } from '@/lib/use-permission';
|
||||
import { useAnyPermission, useWritePermission } from '@/lib/use-permission';
|
||||
import { PermissionGuard } from '@/components/layout/PermissionGuard';
|
||||
import { PERMS } from '@/lib/permissions';
|
||||
|
||||
@@ -26,7 +26,7 @@ function ExcessBaggagePageContent() {
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
// Logging or resending a luggage charge bills the passenger and sends a pay link.
|
||||
const canCharge = useWritePermission(PERMS.excessBaggage.charge, PERMS.bookings.manage);
|
||||
const canCharge = useAnyPermission([PERMS.excessBaggage.charge, PERMS.payments.manage, PERMS.bookings.manage, PERMS.admin]);
|
||||
const [filters, setFilters] = useState({ status: '', bookingRef: '', dateFrom: '', dateTo: '', page: '1' });
|
||||
const [showExtraFilters, setShowExtraFilters] = useState(false);
|
||||
const user = useAuthStore((s) => s.user);
|
||||
|
||||
@@ -16,7 +16,7 @@ import { formatDateTime, formatCurrency, formatDateTimeShort } from '@/lib/utils
|
||||
import { useAuthStore } from '@/lib/auth-store';
|
||||
import { PermissionGuard } from '@/components/layout/PermissionGuard';
|
||||
import { PERMS } from '@/lib/permissions';
|
||||
import { usePermission, useWritePermission, useDeletePermission } from '@/lib/use-permission';
|
||||
import { useAnyPermission, useDeletePermission, usePermission, useWritePermission } from '@/lib/use-permission';
|
||||
|
||||
function TicketsPageContent() {
|
||||
const [filters, setFilters] = useState({ search: '', status: '', originStationId: '', destinationStationId: '', departureDate: '', arrivalDate: '', dateFrom: '', dateTo: '', coachId: '' });
|
||||
@@ -76,7 +76,7 @@ function TicketsPageContent() {
|
||||
const canEditTicket = useWritePermission(PERMS.tickets.edit, PERMS.tickets.manage);
|
||||
const canDelete = useDeletePermission(PERMS.tickets.delete);
|
||||
// Logging luggage bills the passenger and sends a pay link, so it is its own grant.
|
||||
const canLogBaggage = useWritePermission(PERMS.excessBaggage.charge, PERMS.bookings.manage);
|
||||
const canLogBaggage = useAnyPermission([PERMS.excessBaggage.charge, PERMS.payments.manage, PERMS.bookings.manage, PERMS.admin]);
|
||||
const canBoard = useWritePermission(PERMS.tickets.board, PERMS.tickets.manage);
|
||||
|
||||
const { data, isLoading, error } = useQuery({
|
||||
|
||||
Reference in New Issue
Block a user