Skip to content

Commit

Permalink
feat: ORV2-1887 Configure HQADMIN and FINANCE user groups in onRouteBC (
Browse files Browse the repository at this point in the history
#1112)

Co-authored-by: John Fletcher <[email protected]>
Co-authored-by: Krishnan Subramanian <[email protected]>
  • Loading branch information
3 people authored Jan 24, 2024
1 parent 7d2a67a commit d95fed6
Show file tree
Hide file tree
Showing 17 changed files with 213 additions and 28 deletions.
34 changes: 34 additions & 0 deletions database/mssql/scripts/versions/revert/v_13_ddl_revert.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET NOCOUNT ON
GO

DELETE FROM [access].[ORBC_GROUP_ROLE] WHERE USER_AUTH_GROUP_TYPE IN ('HQADMIN', 'FINANCE')
GO
UPDATE [dbo].[ORBC_IDIR_USER]
SET USER_AUTH_GROUP_TYPE = 'IDIRBASIC'
WHERE USER_AUTH_GROUP_TYPE IN ('HQADMIN', 'FINANCE')
GO
UPDATE [dbo].[ORBC_PENDING_IDIR_USER]
SET USER_AUTH_GROUP_TYPE = 'IDIRBASIC'
WHERE USER_AUTH_GROUP_TYPE IN ('HQADMIN', 'FINANCE')
GO
DELETE FROM [access].[ORBC_ROLE_TYPE] WHERE ROLE_TYPE IN (
'ORBC-READ-SPECIAL-AUTH',
'ORBC-READ-NOFEE',
'ORBC-WRITE-NOFEE',
'ORBC-READ-LCV-FLAG',
'ORBC-WRITE-LCV-FLAG',
'ORBC-READ-LOA',
'ORBC-WRITE-LOA'
)
GO
DELETE FROM [access].[ORBC_USER_AUTH_GROUP_TYPE] WHERE USER_AUTH_GROUP_TYPE IN ('HQADMIN', 'FINANCE')
GO

DECLARE @VersionDescription VARCHAR(255)
SET @VersionDescription = 'Removing auth groups HQADMIN and FINANCE'

INSERT [dbo].[ORBC_SYS_VERSION] ([VERSION_ID], [DESCRIPTION], [RELEASE_DATE]) VALUES (12, @VersionDescription, getutcdate())
60 changes: 60 additions & 0 deletions database/mssql/scripts/versions/v_13_ddl.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET NOCOUNT ON
GO

-- Add new auth groups
INSERT [access].[ORBC_USER_AUTH_GROUP_TYPE] ([USER_AUTH_GROUP_TYPE], [DISPLAY_NAME], [DESCRIPTION], [STAFF_FLAG], [CONCURRENCY_CONTROL_NUMBER], [DB_CREATE_USERID], [DB_CREATE_TIMESTAMP], [DB_LAST_UPDATE_USERID], [DB_LAST_UPDATE_TIMESTAMP]) VALUES (N'HQADMIN', N'MOTI HQ Administrator', N'MOTI HQ administrator not part of the permit centre', 1, NULL, N'dbo', GETUTCDATE(), N'dbo', GETUTCDATE())
INSERT [access].[ORBC_USER_AUTH_GROUP_TYPE] ([USER_AUTH_GROUP_TYPE], [DISPLAY_NAME], [DESCRIPTION], [STAFF_FLAG], [CONCURRENCY_CONTROL_NUMBER], [DB_CREATE_USERID], [DB_CREATE_TIMESTAMP], [DB_LAST_UPDATE_USERID], [DB_LAST_UPDATE_TIMESTAMP]) VALUES (N'FINANCE', N'Finance Staff', N'Finance team at the permit centre', 1, NULL, N'dbo', GETUTCDATE(), N'dbo', GETUTCDATE())
GO

-- Add new auth roles
INSERT [access].[ORBC_ROLE_TYPE] ([ROLE_TYPE], [ROLE_DESCRIPTION]) VALUES (N'ORBC-READ-SPECIAL-AUTH', NULL)
INSERT [access].[ORBC_ROLE_TYPE] ([ROLE_TYPE], [ROLE_DESCRIPTION]) VALUES (N'ORBC-READ-NOFEE', NULL)
INSERT [access].[ORBC_ROLE_TYPE] ([ROLE_TYPE], [ROLE_DESCRIPTION]) VALUES (N'ORBC-WRITE-NOFEE', NULL)
INSERT [access].[ORBC_ROLE_TYPE] ([ROLE_TYPE], [ROLE_DESCRIPTION]) VALUES (N'ORBC-READ-LCV-FLAG', NULL)
INSERT [access].[ORBC_ROLE_TYPE] ([ROLE_TYPE], [ROLE_DESCRIPTION]) VALUES (N'ORBC-WRITE-LCV-FLAG', NULL)
INSERT [access].[ORBC_ROLE_TYPE] ([ROLE_TYPE], [ROLE_DESCRIPTION]) VALUES (N'ORBC-READ-LOA', NULL)
INSERT [access].[ORBC_ROLE_TYPE] ([ROLE_TYPE], [ROLE_DESCRIPTION]) VALUES (N'ORBC-WRITE-LOA', NULL)
GO

-- Assign auth roles to new auth groups
-- HQADMIN roles
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-READ-SELF')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-READ-ORG')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-READ-SPECIAL-AUTH')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-READ-NOFEE')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-WRITE-NOFEE')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-READ-LCV-FLAG')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-WRITE-LCV-FLAG')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-READ-LOA')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-WRITE-LOA')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-GENERATE-REPORT')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-GENERATE-TRANSACTION-REPORT')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-GENERATE-TRANSACTION-REPORT-ALL')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-READ-BILLING')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-STAFF')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'HQADMIN', N'ORBC-READ-USER')
-- FINANCE roles
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-READ-SELF')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-READ-ORG')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-READ-SPECIAL-AUTH')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-READ-NOFEE')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-WRITE-NOFEE')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-READ-PERMIT')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-GENERATE-REPORT')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-GENERATE-TRANSACTION-REPORT')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-GENERATE-TRANSACTION-REPORT-ALL')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-READ-BILLING')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-READ-PAYMENT')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-STAFF')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-READ-USER')
INSERT [access].[ORBC_GROUP_ROLE] ([USER_AUTH_GROUP_TYPE], [ROLE_TYPE]) VALUES (N'FINANCE', N'ORBC-READ-DOCUMENT')
GO

DECLARE @VersionDescription VARCHAR(255)
SET @VersionDescription = 'Include auth groups HQADMIN and FINANCE'

INSERT [dbo].[ORBC_SYS_VERSION] ([VERSION_ID], [DESCRIPTION], [UPDATE_SCRIPT], [REVERT_SCRIPT], [RELEASE_DATE]) VALUES (13, @VersionDescription, '$(UPDATE_SCRIPT)', '$(REVERT_SCRIPT)', getutcdate())
6 changes: 0 additions & 6 deletions database/mssql/test/test-runner.sh
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,6 @@ while test -f "${SCRIPT_DIR}/versions/revert/v_${nextver}_ddl_revert.sql"; do
#echo "Next migration file to check: ${SCRIPT_DIR}/versions/v_${nextver}_ddl.sql"
done

echo "Testing the full migrate db schema script..."
migrate_db_current ${MSSQL_SA_USER} "${MSSQL_SA_PASSWORD}" "${MSSQL_HOST}" ${UNIT_TEST_DB_NAME}

echo "Testing the full revert db schema script..."
revert_db_complete ${MSSQL_SA_USER} "${MSSQL_SA_PASSWORD}" "${MSSQL_HOST}" ${UNIT_TEST_DB_NAME}

echo "Testing the full reset script (including sample data)..."
migrate_db_current ${MSSQL_SA_USER} "${MSSQL_SA_PASSWORD}" "${MSSQL_HOST}" ${UNIT_TEST_DB_NAME}
export TEST_MOTI_USER=${MSSQL_SA_USER}
Expand Down
2 changes: 2 additions & 0 deletions database/mssql/test/versions/v_12_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,5 @@ if [[ $TEST_12_4_RESULT -eq 1 ]]; then
else
echo "******** Test 12.4 failed: Previous revisions not being marked SUPERSEDED"
fi

/opt/mssql-tools/bin/sqlcmd -U ${USER} -P "${PASS}" -S ${SERVER} -v DB_NAME=${DATABASE} -h -1 -i ${TESTS_DIR}/v_12_test_cleanup.sql
9 changes: 9 additions & 0 deletions database/mssql/test/versions/v_12_test_cleanup.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET NOCOUNT ON
GO
DELETE FROM $(DB_NAME).tps.ORBC_TPS_MIGRATED_PERMITS
DELETE FROM $(DB_NAME).permit.ORBC_PERMIT_DATA
DELETE FROM $(DB_NAME).permit.ORBC_PERMIT
5 changes: 5 additions & 0 deletions database/mssql/test/versions/v_13_1_test.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- Test that the auth groups have been inserted correctly
SET NOCOUNT ON

SELECT COUNT(*) FROM $(DB_NAME).[access].[ORBC_USER_AUTH_GROUP_TYPE]
WHERE USER_AUTH_GROUP_TYPE IN ('HQADMIN', 'FINANCE')
13 changes: 13 additions & 0 deletions database/mssql/test/versions/v_13_2_test.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
-- Test that the auth roles have been inserted correctly
SET NOCOUNT ON

SELECT COUNT(*) FROM $(DB_NAME).[access].[ORBC_ROLE_TYPE]
WHERE ROLE_TYPE IN (
'ORBC-READ-SPECIAL-AUTH',
'ORBC-READ-NOFEE',
'ORBC-WRITE-NOFEE',
'ORBC-READ-LCV-FLAG',
'ORBC-WRITE-LCV-FLAG',
'ORBC-READ-LOA',
'ORBC-WRITE-LOA'
)
5 changes: 5 additions & 0 deletions database/mssql/test/versions/v_13_3_test.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- Test that the auth groups have been inserted correctly
SET NOCOUNT ON

SELECT COUNT(*) FROM $(DB_NAME).[access].[ORBC_GROUP_ROLE]
WHERE USER_AUTH_GROUP_TYPE IN ('HQADMIN', 'FINANCE')
30 changes: 30 additions & 0 deletions database/mssql/test/versions/v_13_test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash

# Retrieve arguments
source ${SCRIPT_DIR}/utility/getopt.sh
USAGE="-u USER -p PASS -s SERVER -d DATABASE"
parse_options "${USAGE}" ${@}

# All database tests for database version 13 are run from this shell script.
# TESTS_DIR variable set by the calling test-runner script.

TEST_13_1_RESULT=$(/opt/mssql-tools/bin/sqlcmd -U ${USER} -P "${PASS}" -S ${SERVER} -v DB_NAME=${DATABASE} -h -1 -i ${TESTS_DIR}/v_13_1_test.sql | xargs)
if [[ $TEST_13_1_RESULT -eq 2 ]]; then
echo "Test 13.1 passed: User auth groups inserted correctly"
else
echo "******** Test 13.1 failed: User auth groups not inserted correctly"
fi

TEST_13_2_RESULT=$(/opt/mssql-tools/bin/sqlcmd -U ${USER} -P "${PASS}" -S ${SERVER} -v DB_NAME=${DATABASE} -h -1 -i ${TESTS_DIR}/v_13_2_test.sql | xargs)
if [[ $TEST_13_2_RESULT -eq 7 ]]; then
echo "Test 13.2 passed: User auth roles inserted correctly"
else
echo "******** Test 13.2 failed: User auth roles not inserted correctly"
fi

TEST_13_3_RESULT=$(/opt/mssql-tools/bin/sqlcmd -U ${USER} -P "${PASS}" -S ${SERVER} -v DB_NAME=${DATABASE} -h -1 -i ${TESTS_DIR}/v_13_3_test.sql | xargs)
if [[ $TEST_13_3_RESULT -eq 25 ]]; then
echo "Test 13.3 passed: Correct number of role mappings inserted"
else
echo "******** Test 13.3 failed: Incorrect number of role mappings inserted"
fi
7 changes: 7 additions & 0 deletions dops/src/enum/roles.enum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,11 @@ export enum Role {
GENERATE_TRANSACTION_REPORT_ALL = 'ORBC-GENERATE-TRANSACTION-REPORT-ALL',
GENERATE_TRANSACTION_REPORT_SELF = 'ORBC-GENERATE-TRANSACTION-REPORT-SELF',
GENERATE_TRANSACTION_REPORT = 'ORBC-GENERATE-TRANSACTION-REPORT',
READ_SPECIAL_AUTH = 'ORBC-READ-SPECIAL-AUTH',
READ_NOFEE = 'ORBC-READ-NOFEE',
WRITE_NOFEE = 'ORBC-WRITE-NOFEE',
READ_LCV_FLAG = 'ORBC-READ-LCV-FLAG',
WRITE_LCV_FLAG = 'ORBC-WRITE-LCV-FLAG',
READ_LOA = 'ORBC-READ-LOA',
WRITE_LOA = 'ORBC-WRITE-LOA',
}
2 changes: 2 additions & 0 deletions dops/src/enum/user-auth-group.enum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@ export enum UserAuthGroup {
PUBLIC_VERIFIED = 'PUBLIC',
SYSTEM_ADMINISTRATOR = 'SYSADMIN',
ENFORCEMENT_OFFICER = 'EOFFICER',
HQ_ADMINISTRATOR = 'HQADMIN',
FINANCE = 'FINANCE',
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import { Navigate, Outlet, useLocation, useNavigate } from "react-router-dom";
import { LoadIDIRUserContext } from "../LoadIDIRUserContext";
import { LoadIDIRUserRoles } from "../LoadIDIRUserRoles";
import OnRouteBCContext from "../OnRouteBCContext";
import { IDIRUserAuthGroupType, UserRolesType } from "../types";
import { DoesUserHaveAuthGroup, DoesUserHaveRole } from "../util";
import { IDIRUserAuthGroupType } from "../types";
import { DoesUserHaveAuthGroup } from "../util";
import { Loading } from "../../pages/Loading";
import { IDPS } from "../../types/idp";
import { ERROR_ROUTES, HOME } from "../../../routes/constants";
Expand All @@ -19,10 +19,8 @@ const isIDIR = (identityProvider: string) => identityProvider === IDPS.IDIR;
*
*/
export const IDIRAuthWall = ({
requiredRole,
allowedAuthGroups,
}: {
requiredRole?: UserRolesType;
/**
* The collection of auth groups allowed to have access to a page or action.
* IDIR System Admin is assumed to be allowed regardless of it being passed.
Expand Down Expand Up @@ -89,7 +87,7 @@ export const IDIRAuthWall = ({
DoesUserHaveAuthGroup<IDIRUserAuthGroupType>({
userAuthGroup: idirUserDetails?.userAuthGroup,
allowedAuthGroups,
}) && DoesUserHaveRole(userRoles, requiredRole);
});

if (doesUserHaveAccess) {
return <Outlet />;
Expand Down
11 changes: 11 additions & 0 deletions frontend/src/common/authentication/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,13 @@ export const ROLES = {
GENERATE_TRANSACTION_REPORT_ALL: "ORBC-GENERATE-TRANSACTION-REPORT-ALL",
GENERATE_TRANSACTION_REPORT_SELF: "ORBC-GENERATE-TRANSACTION-REPORT-SELF",
GENERATE_TRANSACTION_REPORT: "ORBC-GENERATE-TRANSACTION-REPORT",
READ_SPECIAL_AUTH: "ORBC-READ-SPECIAL-AUTH",
READ_NOFEE: "ORBC-READ-NOFEE",
WRITE_NOFEE: "ORBC-WRITE-NOFEE",
READ_LCV_FLAG: "ORBC-READ-LCV-FLAG",
WRITE_LCV_FLAG: "ORBC-WRITE-LCV-FLAG",
READ_LOA: "ORBC-READ-LOA",
WRITE_LOA: "ORBC-WRITE-LOA",
} as const;

/**
Expand All @@ -126,6 +133,8 @@ export const USER_AUTH_GROUP = {
PPC_CLERK: "PPCCLERK",
SYSTEM_ADMINISTRATOR: "SYSADMIN",
ENFORCEMENT_OFFICER: "EOFFICER",
HQ_ADMINISTRATOR: "HQADMIN",
FINANCE: "FINANCE",
} as const;

/**
Expand Down Expand Up @@ -155,6 +164,8 @@ export const IDIR_USER_AUTH_GROUP = {
PPC_CLERK: "PPCCLERK",
SYSTEM_ADMINISTRATOR: "SYSADMIN",
ENFORCEMENT_OFFICER: "EOFFICER",
HQ_ADMINISTRATOR: "HQADMIN",
FINANCE: "FINANCE",
} as const;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,11 @@ import { UserSelect } from "./subcomponents/UserSelect";
export const PaymentAndRefundDetail = () => {
const { idirUserDetails } = useContext(OnRouteBCContext);
const { user: idirUserFromAuthContext } = useAuth();
const isSysAdmin =
const canSelectPermitIssuers =
idirUserDetails?.userAuthGroup ===
IDIR_USER_AUTH_GROUP.SYSTEM_ADMINISTRATOR;
IDIR_USER_AUTH_GROUP.SYSTEM_ADMINISTRATOR ||
idirUserDetails?.userAuthGroup === IDIR_USER_AUTH_GROUP.HQ_ADMINISTRATOR ||
idirUserDetails?.userAuthGroup === IDIR_USER_AUTH_GROUP.FINANCE;
// GET the permit types.
const permitTypesQuery = usePermitTypesQuery();
const { setSnackBar } = useContext(SnackBarContext);
Expand Down Expand Up @@ -67,7 +69,7 @@ export const PaymentAndRefundDetail = () => {
},
keepPreviousData: true,
// Only query the permit issuers when the user is sysadmin.
enabled: isSysAdmin,
enabled: canSelectPermitIssuers,
staleTime: ONE_HOUR,
retry: false,
refetchOnWindowFocus: false, // prevents unnecessary queries
Expand All @@ -90,7 +92,7 @@ export const PaymentAndRefundDetail = () => {
permitType: Object.keys(permitTypes ?? []),
// permitIssuers is a <userName, userGUID> record.
// So, Object.values is what we need.
users: isSysAdmin
users: canSelectPermitIssuers
? Object.values(permitIssuers ?? {})
: // If user is not a sys admin, only their own guid is populated.
[idirUserFromAuthContext?.profile?.idir_user_guid as string],
Expand Down Expand Up @@ -237,7 +239,7 @@ export const PaymentAndRefundDetail = () => {
<Stack>
<PaymentMethodSelect />
</Stack>
{isSysAdmin && (
{canSelectPermitIssuers && (
<Stack direction="row">
<UserSelect
permitIssuers={permitIssuers}
Expand Down
28 changes: 16 additions & 12 deletions frontend/src/routes/Routes.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,11 @@ export const AppRoutes = () => {
<Route
element={
<IDIRAuthWall
requiredRole={ROLES.STAFF}
allowedAuthGroups={[
IDIR_USER_AUTH_GROUP.ENFORCEMENT_OFFICER,
IDIR_USER_AUTH_GROUP.PPC_CLERK,
IDIR_USER_AUTH_GROUP.FINANCE,
IDIR_USER_AUTH_GROUP.HQ_ADMINISTRATOR,
]}
/>
}
Expand All @@ -98,7 +99,6 @@ export const AppRoutes = () => {
<Route
element={
<IDIRAuthWall
requiredRole={ROLES.STAFF}
allowedAuthGroups={[IDIR_USER_AUTH_GROUP.PPC_CLERK]}
/>
}
Expand All @@ -114,7 +114,17 @@ export const AppRoutes = () => {
</Route>

{/* IDIR System Admin Routes */}
<Route element={<IDIRAuthWall requiredRole={ROLES.STAFF_ADMIN} />}>
<Route
element={
<IDIRAuthWall
allowedAuthGroups={[
IDIR_USER_AUTH_GROUP.PPC_CLERK,
IDIR_USER_AUTH_GROUP.FINANCE,
IDIR_USER_AUTH_GROUP.HQ_ADMINISTRATOR,
]}
/>
}
>
{/* Only IDIR System Admins can access the reports page */}
<Route
path={routes.IDIR_ROUTES.REPORTS}
Expand All @@ -138,25 +148,19 @@ export const AppRoutes = () => {
<Route
path={`${routes.VEHICLES_ROUTES.TRAILER_DETAILS}/:vehicleId`}
element={
<EditVehicleDashboard
editVehicleMode={VEHICLE_TYPES.TRAILER}
/>
<EditVehicleDashboard editVehicleMode={VEHICLE_TYPES.TRAILER} />
}
/>
<Route
path={routes.VEHICLES_ROUTES.ADD_POWER_UNIT}
element={
<AddVehicleDashboard
addVehicleMode={VEHICLE_TYPES.POWER_UNIT}
/>
<AddVehicleDashboard addVehicleMode={VEHICLE_TYPES.POWER_UNIT} />
}
/>
<Route
path={routes.VEHICLES_ROUTES.ADD_TRAILER}
element={
<AddVehicleDashboard
addVehicleMode={VEHICLE_TYPES.TRAILER}
/>
<AddVehicleDashboard addVehicleMode={VEHICLE_TYPES.TRAILER} />
}
/>
</Route>
Expand Down
7 changes: 7 additions & 0 deletions vehicles/src/common/enum/roles.enum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,11 @@ export enum Role {
GENERATE_TRANSACTION_REPORT_ALL = 'ORBC-GENERATE-TRANSACTION-REPORT-ALL',
GENERATE_TRANSACTION_REPORT_SELF = 'ORBC-GENERATE-TRANSACTION-REPORT-SELF',
GENERATE_TRANSACTION_REPORT = 'ORBC-GENERATE-TRANSACTION-REPORT',
READ_SPECIAL_AUTH = 'ORBC-READ-SPECIAL-AUTH',
READ_NOFEE = 'ORBC-READ-NOFEE',
WRITE_NOFEE = 'ORBC-WRITE-NOFEE',
READ_LCV_FLAG = 'ORBC-READ-LCV-FLAG',
WRITE_LCV_FLAG = 'ORBC-WRITE-LCV-FLAG',
READ_LOA = 'ORBC-READ-LOA',
WRITE_LOA = 'ORBC-WRITE-LOA',
}
2 changes: 2 additions & 0 deletions vehicles/src/common/enum/user-auth-group.enum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@ export enum UserAuthGroup {
PUBLIC_VERIFIED = 'PUBLIC',
SYSTEM_ADMINISTRATOR = 'SYSADMIN',
ENFORCEMENT_OFFICER = 'EOFFICER',
HQ_ADMINISTRATOR = 'HQADMIN',
FINANCE = 'FINANCE',
}

0 comments on commit d95fed6

Please sign in to comment.