feat: add configurable application status access
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Link2, RefreshCw, UserRoundPlus } from "lucide-react";
|
||||
import { Link2, RefreshCw, ShieldCheck, UserRoundPlus } from "lucide-react";
|
||||
import { useCallback, useEffect, useState } from "react";
|
||||
import { ActionToolbar,
|
||||
Button,
|
||||
@@ -22,6 +22,7 @@ import { listFormInstances, type FormInstance } from "../../api/formsRuntime";
|
||||
import { FORMS_RUNTIME_DOCUMENTATION, FORMS_RUNTIME_I18N } from "./interfacePatterns";
|
||||
import IntakeProfilesDialog from "./IntakeProfilesDialog";
|
||||
import AssistedIntakeDialog from "./AssistedIntakeDialog";
|
||||
import StatusAccessPoliciesDialog from "./StatusAccessPoliciesDialog";
|
||||
|
||||
|
||||
const OPEN_STATUSES = ["started", "draft", "submitted", "validated", "needs_review"];
|
||||
@@ -36,6 +37,7 @@ export default function FormsRuntimePage({ settings, auth }: PlatformRouteContex
|
||||
const [error, setError] = useState("");
|
||||
const [intakeOpen, setIntakeOpen] = useState(false);
|
||||
const [assistedOpen, setAssistedOpen] = useState(false);
|
||||
const [statusAccessOpen, setStatusAccessOpen] = useState(false);
|
||||
const canAdmin = hasScope(auth, "forms_runtime:workspace:admin");
|
||||
const canAssist = hasScope(auth, "forms_runtime:submission:assist")
|
||||
|| hasScope(auth, "forms_runtime:workspace:write");
|
||||
@@ -78,6 +80,12 @@ export default function FormsRuntimePage({ settings, auth }: PlatformRouteContex
|
||||
Public intake
|
||||
</Button>
|
||||
}
|
||||
{canAdmin &&
|
||||
<Button onClick={() => setStatusAccessOpen(true)}>
|
||||
<ShieldCheck size={16} aria-hidden="true" />
|
||||
Status access
|
||||
</Button>
|
||||
}
|
||||
{canAssist &&
|
||||
<Button onClick={() => setAssistedOpen(true)}>
|
||||
<UserRoundPlus size={16} aria-hidden="true" />
|
||||
@@ -127,6 +135,7 @@ export default function FormsRuntimePage({ settings, auth }: PlatformRouteContex
|
||||
</PageScrollViewport>
|
||||
</WorkspaceFrame>
|
||||
<IntakeProfilesDialog open={intakeOpen} settings={settings} onClose={() => setIntakeOpen(false)} />
|
||||
<StatusAccessPoliciesDialog open={statusAccessOpen} settings={settings} onClose={() => setStatusAccessOpen(false)} />
|
||||
<AssistedIntakeDialog
|
||||
open={assistedOpen}
|
||||
settings={settings}
|
||||
|
||||
Reference in New Issue
Block a user