diff --git a/apps/console/src/components/customDomains/CustomDomainManager.tsx b/apps/console/src/components/customDomains/CustomDomainManager.tsx
index 6a324d598..6a85a348f 100644
--- a/apps/console/src/components/customDomains/CustomDomainManager.tsx
+++ b/apps/console/src/components/customDomains/CustomDomainManager.tsx
@@ -6,7 +6,8 @@ import type { CustomDomainManagerDeleteMutation } from "./__generated__/CustomDo
import { CreateCustomDomainDialog } from "./CreateCustomDomainDialog";
import { DeleteCustomDomainDialog } from "./DeleteCustomDomainDialog";
import { DomainDetailsDialog } from "./DomainDetailsDialog";
-import { Authorized } from "/permissions";
+import { PermissionsContext } from "/providers/PermissionsContext";
+import { use } from "react";
const deleteCustomDomainMutation = graphql`
mutation CustomDomainManagerDeleteMutation($input: DeleteCustomDomainInput!) {
@@ -45,7 +46,7 @@ export function CustomDomainManager({
customDomain,
}: CustomDomainManagerProps) {
const { __ } = useTranslate();
-
+ const { isAuthorized } = use(PermissionsContext);
const [deleteCustomDomain] =
useMutationWithToasts
|
|
)}
diff --git a/apps/console/src/pages/organizations/continualImprovements/ContinualImprovementDetailsPage.tsx b/apps/console/src/pages/organizations/continualImprovements/ContinualImprovementDetailsPage.tsx
index ae0b33cd5..8c37c43d0 100644
--- a/apps/console/src/pages/organizations/continualImprovements/ContinualImprovementDetailsPage.tsx
+++ b/apps/console/src/pages/organizations/continualImprovements/ContinualImprovementDetailsPage.tsx
@@ -35,7 +35,8 @@ import z from "zod";
import { getStatusVariant, getStatusLabel, formatDatetime, validateSnapshotConsistency } from "@probo/helpers";
import { SnapshotBanner } from "/components/SnapshotBanner";
import type { ContinualImprovementGraphNodeQuery } from "/hooks/graph/__generated__/ContinualImprovementGraphNodeQuery.graphql";
-import { Authorized } from "/permissions";
+import { use } from "react";
+import { PermissionsContext } from "/providers/PermissionsContext";
const updateImprovementSchema = z.object({
referenceId: z.string().min(1, "Reference ID is required"),
@@ -59,7 +60,7 @@ export default function ContinualImprovementDetailsPage(props: Props) {
const organizationId = useOrganizationId();
const { snapshotId } = useParams<{ snapshotId?: string }>();
const isSnapshotMode = Boolean(snapshotId);
-
+ const { isAuthorized } = use(PermissionsContext);
if (!improvement) {
return
|
)}
diff --git a/apps/console/src/pages/organizations/data/DataPage.tsx b/apps/console/src/pages/organizations/data/DataPage.tsx
index 3f388890a..e3053b4e8 100644
--- a/apps/console/src/pages/organizations/data/DataPage.tsx
+++ b/apps/console/src/pages/organizations/data/DataPage.tsx
@@ -35,8 +35,8 @@ import type {
import type { DataListQuery } from "./__generated__/DataListQuery.graphql";
import { SortableTable } from "/components/SortableTable";
import { SnapshotBanner } from "/components/SnapshotBanner";
-import { Authorized } from "/permissions";
-import { isAuthorized } from "/permissions";
+import { use } from "react";
+import { PermissionsContext } from "/providers/PermissionsContext";
const paginatedDataFragment = graphql`
fragment DataPageFragment on Organization
@@ -93,6 +93,7 @@ export default function DataPage(props: Props) {
const organizationId = useOrganizationId();
const { snapshotId } = useParams<{ snapshotId?: string }>();
const isSnapshotMode = Boolean(snapshotId);
+ const { isAuthorized } = use(PermissionsContext);
const queryData = usePreloadedQuery
|
)}
diff --git a/apps/console/src/pages/organizations/data/DatumDetailsPage.tsx b/apps/console/src/pages/organizations/data/DatumDetailsPage.tsx
index 4f79b902d..83743a177 100644
--- a/apps/console/src/pages/organizations/data/DatumDetailsPage.tsx
+++ b/apps/console/src/pages/organizations/data/DatumDetailsPage.tsx
@@ -29,7 +29,8 @@ import z from "zod";
import { SnapshotBanner } from "/components/SnapshotBanner";
import { validateSnapshotConsistency } from "@probo/helpers";
import type { DatumGraphNodeQuery } from "/hooks/graph/__generated__/DatumGraphNodeQuery.graphql";
-import { Authorized } from "/permissions";
+import { use } from "react";
+import { PermissionsContext } from "/providers/PermissionsContext";
const updateDatumSchema = z.object({
name: z.string().min(1, "Name is required"),
@@ -57,6 +58,7 @@ export default function DatumDetailsPage(props: Props) {
const { __ } = useTranslate();
const organizationId = useOrganizationId();
+ const { isAuthorized } = use(PermissionsContext);
const deleteDatum = useDeleteDatum(
datumEntry,
@@ -125,7 +127,7 @@ export default function DatumDetailsPage(props: Props) {
|
)}
diff --git a/apps/console/src/pages/organizations/documents/tabs/DocumentSignaturesTab.tsx b/apps/console/src/pages/organizations/documents/tabs/DocumentSignaturesTab.tsx
index 2bcab9a26..f883e836c 100644
--- a/apps/console/src/pages/organizations/documents/tabs/DocumentSignaturesTab.tsx
+++ b/apps/console/src/pages/organizations/documents/tabs/DocumentSignaturesTab.tsx
@@ -8,7 +8,7 @@ import {
Spinner,
} from "@probo/ui";
import { useTranslate } from "@probo/i18n";
-import { Suspense, useState, useEffect, useRef } from "react";
+import { Suspense, useState, useEffect, useRef, use } from "react";
import type { ItemOf, NodeOf } from "/types";
import { graphql, useFragment, useRefetchableFragment } from "react-relay";
import { usePeople } from "/hooks/graph/PeopleGraph.ts";
@@ -20,7 +20,7 @@ import { useOutletContext } from "react-router";
import type { DocumentSignaturesTab_signature$key } from "/pages/organizations/documents/tabs/__generated__/DocumentSignaturesTab_signature.graphql.ts";
import type { DocumentSignaturesTab_version$key } from "/pages/organizations/documents/tabs/__generated__/DocumentSignaturesTab_version.graphql.ts";
import type { DocumentSignaturesTabRefetchQuery } from "./__generated__/DocumentSignaturesTabRefetchQuery.graphql";
-import { Authorized } from "/permissions";
+import { PermissionsContext } from "/providers/PermissionsContext";
type Version = NodeOf
|
)}
diff --git a/apps/console/src/pages/organizations/meetings/MeetingDetailPage.tsx b/apps/console/src/pages/organizations/meetings/MeetingDetailPage.tsx
index 7256bda80..db1e51131 100644
--- a/apps/console/src/pages/organizations/meetings/MeetingDetailPage.tsx
+++ b/apps/console/src/pages/organizations/meetings/MeetingDetailPage.tsx
@@ -21,12 +21,12 @@ import {
UpdateMeetingMinutesDialog,
type UpdateMeetingMinutesDialogRef,
} from "./dialogs/UpdateMeetingMinutesDialog";
-import { useRef, useState, useEffect } from "react";
+import { useRef, useState, useEffect, use } from "react";
import {
meetingNodeQuery,
useDeleteMeetingMutation,
} from "/hooks/graph/MeetingGraph";
-import { isAuthorized } from "/permissions";
+import { PermissionsContext } from "/providers/PermissionsContext";
const meetingFragment = graphql`
fragment MeetingDetailPageMeetingFragment on Meeting {
@@ -54,6 +54,7 @@ export default function MeetingDetailPage(props: Props) {
const { __ } = useTranslate();
const organizationId = useOrganizationId();
const navigate = useNavigate();
+ const { isAuthorized } = use(PermissionsContext);
if (!meeting) {
return
|
-
|
)}
diff --git a/apps/console/src/pages/organizations/nonconformities/NonconformityDetailsPage.tsx b/apps/console/src/pages/organizations/nonconformities/NonconformityDetailsPage.tsx
index bf10a4935..99996778d 100644
--- a/apps/console/src/pages/organizations/nonconformities/NonconformityDetailsPage.tsx
+++ b/apps/console/src/pages/organizations/nonconformities/NonconformityDetailsPage.tsx
@@ -34,7 +34,8 @@ import { useFormWithSchema } from "/hooks/useFormWithSchema";
import z from "zod";
import { getStatusVariant, getStatusLabel, formatDatetime, validateSnapshotConsistency, getStatusOptions, formatError, type GraphQLError } from "@probo/helpers";
import type { NonconformityGraphNodeQuery } from "/hooks/graph/__generated__/NonconformityGraphNodeQuery.graphql";
-import { Authorized } from "/permissions";
+import { PermissionsContext } from "/providers/PermissionsContext";
+import { use } from "react";
const updateNonconformitySchema = z.object({
referenceId: z.string().min(1, "Reference ID is required"),
@@ -63,6 +64,7 @@ export default function NonconformityDetailsPage(props: Props) {
const organizationId = useOrganizationId();
const { snapshotId } = useParams<{ snapshotId?: string }>();
const isSnapshotMode = Boolean(snapshotId);
+ const { isAuthorized } = use(PermissionsContext);
validateSnapshotConsistency(nonconformity, snapshotId);
@@ -162,7 +164,7 @@ export default function NonconformityDetailsPage(props: Props) {
{!isSnapshotMode && (
|
)}
diff --git a/apps/console/src/pages/organizations/people/PeopleDetailPage.tsx b/apps/console/src/pages/organizations/people/PeopleDetailPage.tsx
index 1ac7b8c72..6f8a9a601 100644
--- a/apps/console/src/pages/organizations/people/PeopleDetailPage.tsx
+++ b/apps/console/src/pages/organizations/people/PeopleDetailPage.tsx
@@ -21,7 +21,8 @@ import {
import { useTranslate } from "@probo/i18n";
import { useOrganizationId } from "/hooks/useOrganizationId";
import { Outlet } from "react-router";
-import { Authorized } from "/permissions";
+import { use } from "react";
+import { PermissionsContext } from "/providers/PermissionsContext";
type Props = {
queryRef: PreloadedQuery
|
)}
diff --git a/apps/console/src/pages/organizations/processingActivities/ProcessingActivityDetailsPage.tsx b/apps/console/src/pages/organizations/processingActivities/ProcessingActivityDetailsPage.tsx
index bbee80724..97758c0f7 100644
--- a/apps/console/src/pages/organizations/processingActivities/ProcessingActivityDetailsPage.tsx
+++ b/apps/console/src/pages/organizations/processingActivities/ProcessingActivityDetailsPage.tsx
@@ -41,7 +41,8 @@ import {
} from "../../../components/form/ProcessingActivityEnumOptions";
import type { ProcessingActivityGraphNodeQuery } from "/hooks/graph/__generated__/ProcessingActivityGraphNodeQuery.graphql";
-import { Authorized } from "/permissions";
+import { use } from "react";
+import { PermissionsContext } from "/providers/PermissionsContext";
const updateProcessingActivitySchema = z.object({
name: z.string().min(1, "Name is required"),
@@ -74,6 +75,7 @@ export default function ProcessingActivityDetailsPage(props: Props) {
const organizationId = useOrganizationId();
const { snapshotId } = useParams<{ snapshotId?: string }>();
const isSnapshotMode = Boolean(snapshotId);
+ const { isAuthorized } = use(PermissionsContext);
if (!activity) {
return
|
)}
diff --git a/apps/console/src/pages/organizations/settings/GeneralSettingsTab.tsx b/apps/console/src/pages/organizations/settings/GeneralSettingsTab.tsx
index cf0c53414..ae23ebb7d 100644
--- a/apps/console/src/pages/organizations/settings/GeneralSettingsTab.tsx
+++ b/apps/console/src/pages/organizations/settings/GeneralSettingsTab.tsx
@@ -1,4 +1,4 @@
-import { useState, useRef, useEffect, type ChangeEventHandler } from "react";
+import { useState, useRef, useEffect, type ChangeEventHandler, use } from "react";
import { useOutletContext, useNavigate } from "react-router";
import { useFragment, graphql } from "react-relay";
import {
@@ -23,7 +23,7 @@ import { z } from "zod";
import type { GeneralSettingsTabFragment$key } from "./__generated__/GeneralSettingsTabFragment.graphql";
import { DeleteOrganizationDialog } from "/components/organizations/DeleteOrganizationDialog";
import { useDeleteOrganizationMutation } from "/hooks/graph/OrganizationGraph";
-import { isAuthorized } from "/permissions";
+import { PermissionsContext } from "/providers/PermissionsContext";
const generalSettingsTabFragment = graphql`
fragment GeneralSettingsTabFragment on Organization {
@@ -90,9 +90,10 @@ export default function GeneralSettingsTab() {
const { organization: organizationKey } = useOutletContext
|
)}
diff --git a/apps/console/src/pages/organizations/tasks/TasksPage.tsx b/apps/console/src/pages/organizations/tasks/TasksPage.tsx
index 8565139e4..fd66555dd 100644
--- a/apps/console/src/pages/organizations/tasks/TasksPage.tsx
+++ b/apps/console/src/pages/organizations/tasks/TasksPage.tsx
@@ -12,7 +12,8 @@ import { tasksQuery } from "/hooks/graph/TaskGraph";
import { usePageTitle } from "@probo/hooks";
import TasksCard from "/components/tasks/TasksCard";
import TaskFormDialog from "/components/tasks/TaskFormDialog";
-import { Authorized } from "/permissions";
+import { PermissionsContext } from "/providers/PermissionsContext";
+import { use } from "react";
const tasksFragment = graphql`
fragment TasksPageFragment on Organization
@@ -66,7 +67,7 @@ export default function TasksPage({ queryRef }: Props) {
);
const tasks = data.tasks?.edges.map((edge) => edge.node);
const connectionId = data.tasks.__id;
-
+ const { isAuthorized } = use(PermissionsContext);
usePageTitle(__("Tasks"));
return (
@@ -77,11 +78,11 @@ export default function TasksPage({ queryRef }: Props) {
"Track your assigned compliance tasks and keep progress on track."
)}
>
-
|
)}
diff --git a/apps/console/src/pages/organizations/vendors/tabs/VendorOverviewTab.tsx b/apps/console/src/pages/organizations/vendors/tabs/VendorOverviewTab.tsx
index 389ef3f49..e58e8ec27 100644
--- a/apps/console/src/pages/organizations/vendors/tabs/VendorOverviewTab.tsx
+++ b/apps/console/src/pages/organizations/vendors/tabs/VendorOverviewTab.tsx
@@ -6,7 +6,7 @@ import { PeopleSelectField } from "/components/form/PeopleSelectField";
import { ControlledField } from "/components/form/ControlledField";
import { CountriesField } from "/components/form/CountriesField";
import { useOrganizationId } from "/hooks/useOrganizationId";
-import { useMemo } from "react";
+import { use, useMemo } from "react";
import { usePageTitle } from "@probo/hooks";
import { downloadFile, formatDate } from "@probo/helpers";
import { useFragment, graphql } from "react-relay";
@@ -20,7 +20,7 @@ import type { useVendorFormFragment$key } from "/hooks/forms/__generated__/useVe
import type { VendorOverviewTabBusinessAssociateAgreementFragment$key } from "./__generated__/VendorOverviewTabBusinessAssociateAgreementFragment.graphql";
import type { VendorOverviewTabDataPrivacyAgreementFragment$key } from "./__generated__/VendorOverviewTabDataPrivacyAgreementFragment.graphql";
import type { VendorCategory } from "@probo/vendors";
-import { Authorized } from "/permissions";
+import { PermissionsContext } from "/providers/PermissionsContext";
const vendorBusinessAssociateAgreementFragment = graphql`
fragment VendorOverviewTabBusinessAssociateAgreementFragment on Vendor {
@@ -58,7 +58,7 @@ export default function VendorOverviewTab() {
}>();
const { __ } = useTranslate();
-
+ const { isAuthorized } = use(PermissionsContext);
const vendorCategories: { value: VendorCategory; label: string }[] = [
{ value: "ANALYTICS", label: __("Analytics") },
{ value: "CLOUD_MONITORING", label: __("Cloud Monitoring") },
@@ -396,11 +396,11 @@ export default function VendorOverviewTab() {
{/* Submit */}
{!isSnapshotMode && (