Skip to content

Commit 12e5e3a

Browse files
github-actions[bot]chasprowebdevMarfuen
authored
fix: Enable 'Ready for Review' menu for client on Document Finding (#2404)
* fix(app): pass isPlatformAdmin value to FindingItem to make 'Ready for Review' enabled by client * fix(app): remove isAuditor and add canSetReadyForReview param to FindingItem * fix(app): remove isPlatformAdmin prop from FindingItem --------- Co-authored-by: chasprowebdev <chasgarciaprowebdev@gmail.com> Co-authored-by: Mariano Fuentes <marfuen98@gmail.com>
1 parent 645dd48 commit 12e5e3a

5 files changed

Lines changed: 22 additions & 13 deletions

File tree

apps/app/src/app/(app)/[orgId]/documents/[formType]/page.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import Link from 'next/link';
44
import { notFound } from 'next/navigation';
55
import { Suspense } from 'react';
66
import { evidenceFormDefinitions, evidenceFormTypeSchema } from '../forms';
7+
import { auth } from '@/utils/auth';
8+
import { headers } from 'next/headers';
79

810
export default async function CompanyFormDetailPage({
911
params,
@@ -19,6 +21,16 @@ export default async function CompanyFormDetailPage({
1921

2022
const formDefinition = evidenceFormDefinitions[parsedType.data];
2123

24+
let isPlatformAdmin = false;
25+
26+
const session = await auth.api.getSession({
27+
headers: await headers(),
28+
});
29+
30+
if (session?.user?.id) {
31+
isPlatformAdmin = session.user.role === 'admin';
32+
}
33+
2234
return (
2335
<PageLayout>
2436
<Breadcrumb
@@ -35,6 +47,7 @@ export default async function CompanyFormDetailPage({
3547
<CompanyFormPageClient
3648
organizationId={orgId}
3749
formType={parsedType.data}
50+
isPlatformAdmin={isPlatformAdmin}
3851
/>
3952
</Suspense>
4053
</PageLayout>

apps/app/src/app/(app)/[orgId]/documents/components/CompanyFormPageClient.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ async function evidenceFormFetcher([endpoint, orgId]: readonly [
145145
export function CompanyFormPageClient({
146146
organizationId,
147147
formType,
148-
isPlatformAdmin,
148+
isPlatformAdmin = false,
149149
}: {
150150
organizationId: string;
151151
formType: EvidenceFormType;
@@ -579,7 +579,7 @@ export function CompanyFormPageClient({
579579
</TabsContent>
580580

581581
<TabsContent value="findings">
582-
<DocumentFindingsSection formType={formType} />
582+
<DocumentFindingsSection formType={formType} isPlatformAdmin={isPlatformAdmin} />
583583
</TabsContent>
584584
</Stack>
585585
</Tabs>

apps/app/src/app/(app)/[orgId]/documents/components/DocumentFindingsSection.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@ const STATUS_ORDER: Record<FindingStatus, number> = {
2525

2626
interface DocumentFindingsSectionProps {
2727
formType: EvidenceFormType;
28+
isPlatformAdmin?: boolean;
2829
}
2930

3031
export function DocumentFindingsSection({
3132
formType,
33+
isPlatformAdmin = false,
3234
}: DocumentFindingsSectionProps) {
3335
const { hasPermission } = usePermissions();
3436
const { data: activeMember } = useActiveMember();
@@ -226,11 +228,10 @@ export function DocumentFindingsSection({
226228
<FindingItem
227229
key={finding.id}
228230
finding={finding}
229-
isAuditor={canSetRestrictedStatus}
230-
isPlatformAdmin={false}
231231
isExpanded={expandedId === finding.id}
232232
canChangeStatus={canChangeStatus}
233233
canSetRestrictedStatus={canSetRestrictedStatus}
234+
canSetReadyForReview={isPlatformAdmin || !canSetRestrictedStatus}
234235
onToggleExpand={() => setExpandedId(expandedId === finding.id ? null : finding.id)}
235236
onStatusChange={(status, revisionNote) =>
236237
handleStatusChange(finding.id, status, revisionNote)

apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/findings/FindingItem.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,8 @@ interface FindingItemProps {
3737
isExpanded: boolean;
3838
canChangeStatus: boolean;
3939
canSetRestrictedStatus: boolean;
40+
canSetReadyForReview: boolean;
4041
canDelete?: boolean;
41-
isAuditor: boolean;
42-
isPlatformAdmin: boolean;
4342
isTarget?: boolean; // Whether this finding is the navigation target
4443
onToggleExpand: () => void;
4544
onStatusChange: (status: FindingStatus, revisionNote?: string) => Promise<void> | void;
@@ -55,9 +54,8 @@ export function FindingItem({
5554
isExpanded,
5655
canChangeStatus,
5756
canSetRestrictedStatus,
57+
canSetReadyForReview,
5858
canDelete = canSetRestrictedStatus,
59-
isAuditor,
60-
isPlatformAdmin,
6159
isTarget = false,
6260
onToggleExpand,
6361
onStatusChange,
@@ -152,8 +150,6 @@ export function FindingItem({
152150
// - Auditors can set: open, needs_revision, closed
153151
// - Non-auditor admins/owners can set: open, ready_for_review
154152
const statusOptions = useMemo(() => {
155-
const canSetReadyForReview = isPlatformAdmin || !isAuditor;
156-
157153
return [
158154
{ value: FindingStatus.open, label: 'Open', disabled: false },
159155
{
@@ -175,7 +171,7 @@ export function FindingItem({
175171
hint: !canSetRestrictedStatus ? 'Auditor only' : undefined,
176172
},
177173
];
178-
}, [isPlatformAdmin, isAuditor, canSetRestrictedStatus]);
174+
}, [canSetRestrictedStatus, canSetReadyForReview]);
179175

180176
return (
181177
<div

apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/findings/FindingsList.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,12 +197,11 @@ export function FindingsList({
197197
<FindingItem
198198
key={finding.id}
199199
finding={finding}
200-
isAuditor={isAuditor}
201-
isPlatformAdmin={isPlatformAdmin}
202200
isExpanded={expandedId === finding.id}
203201
isTarget={targetFindingId === finding.id}
204202
canChangeStatus={canChangeStatus}
205203
canSetRestrictedStatus={canSetRestrictedStatus}
204+
canSetReadyForReview={isPlatformAdmin || !isAuditor}
206205
canDelete={canDeleteFinding}
207206
onToggleExpand={() => setExpandedId(expandedId === finding.id ? null : finding.id)}
208207
onStatusChange={(status, revisionNote) =>

0 commit comments

Comments
 (0)