From 533822b60d0d1b16e065d911feaa253427e00665 Mon Sep 17 00:00:00 2001 From: Sacha Al Himdani Date: Mon, 22 Sep 2025 15:02:08 +0200 Subject: [PATCH] Decouple users from people Signed-off-by: Sacha Al Himdani --- .../organizations/InviteUserDialog.tsx | 33 +- .../InviteUserDialogMutation.graphql.ts | 3 +- apps/console/src/hooks/graph/VendorGraph.ts | 5 +- .../DocumentGraphNodeQuery.graphql.ts | 19 +- ...nterDocumentGraphUpdateMutation.graphql.ts | 3 +- .../VendorGraphListQuery.graphql.ts | 12 +- .../VendorGraphNodeQuery.graphql.ts | 116 +++--- .../VendorGraphPaginatedFragment.graphql.ts | 12 +- .../__generated__/VendorsListQuery.graphql.ts | 14 +- .../documents/DocumentDetailPage.tsx | 6 - ...umentDetailPageDocumentFragment.graphql.ts | 56 ++- ...ocumentDetailPageUpdateMutation.graphql.ts | 3 +- .../vendors/VendorDetailPage.tsx | 2 +- .../organizations/vendors/VendorsPage.tsx | 4 +- .../dialogs/CreateRiskAssessmentDialog.tsx | 3 - ...ateRiskAssessmentDialogMutation.graphql.ts | 35 +- .../ImportAssessmentDialogMutation.graphql.ts | 27 +- .../vendors/tabs/VendorRiskAssessmentTab.tsx | 17 +- ...ssessmentTabFragment_assessment.graphql.ts | 40 +-- .../VendorRiskAssessmentTabQuery.graphql.ts | 29 +- pkg/coredata/document_version.go | 17 - pkg/coredata/migrations/20250922T120000Z.sql | 6 + pkg/coredata/vendor_risk_assessment.go | 40 +-- .../vendor_risk_assessment_order_field.go | 5 +- pkg/docgen/generator.go | 1 - pkg/docgen/template.html | 84 ++--- pkg/probo/document_service.go | 29 +- pkg/probo/vendor_service.go | 3 - pkg/server/api/console/v1/schema.graphql | 10 +- pkg/server/api/console/v1/schema/schema.go | 333 +----------------- pkg/server/api/console/v1/types/types.go | 6 +- .../v1/types/vendor_risk_assessment.go | 1 - pkg/server/api/console/v1/v1_resolver.go | 76 +--- pkg/trust/document_service.go | 8 - pkg/usrmgr/usrmgr.go | 110 +++--- 35 files changed, 296 insertions(+), 872 deletions(-) create mode 100644 pkg/coredata/migrations/20250922T120000Z.sql diff --git a/apps/console/src/components/organizations/InviteUserDialog.tsx b/apps/console/src/components/organizations/InviteUserDialog.tsx index 300b97b11..97139d991 100644 --- a/apps/console/src/components/organizations/InviteUserDialog.tsx +++ b/apps/console/src/components/organizations/InviteUserDialog.tsx @@ -4,6 +4,7 @@ import { DialogContent, DialogFooter, Field, + Checkbox, useDialogRef, } from "@probo/ui"; import type { PropsWithChildren } from "react"; @@ -13,6 +14,7 @@ import { useOrganizationId } from "/hooks/useOrganizationId"; import { useMutationWithToasts } from "/hooks/useMutationWithToasts"; import { z } from "zod"; import { useFormWithSchema } from "/hooks/useFormWithSchema"; +import { Controller } from "react-hook-form"; const inviteMutation = graphql` mutation InviteUserDialogMutation($input: InviteUserInput!) { @@ -25,6 +27,7 @@ const inviteMutation = graphql` const schema = z.object({ email: z.string().email(), fullName: z.string(), + createPeople: z.boolean().default(false), }); export function InviteUserDialog({ children }: PropsWithChildren) { @@ -34,9 +37,9 @@ export function InviteUserDialog({ children }: PropsWithChildren) { successMessage: __("User invited successfully"), errorMessage: __("Failed to invite user"), }); - const { register, handleSubmit, formState, reset } = useFormWithSchema( + const { register, handleSubmit, formState, reset, control } = useFormWithSchema( schema, - {}, + { defaultValues: { createPeople: false } }, ); const dialogRef = useDialogRef(); @@ -48,6 +51,7 @@ export function InviteUserDialog({ children }: PropsWithChildren) { organizationId, email: data.email, fullName: data.fullName, + createPeople: data.createPeople, }, }, onSuccess: () => { @@ -83,6 +87,31 @@ export function InviteUserDialog({ children }: PropsWithChildren) { {...register("fullName")} error={formState.errors.fullName?.message} /> +
+
+ ( + <> + + + + )} + /> +
+

+ {__("Creates a people record for this user in addition to the user account")} +

+