mirror of
https://github.com/fosrl/pangolin.git
synced 2026-07-31 09:45:45 +02:00
policies and policy on resource structure in a good place
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
"use client";
|
||||
|
||||
import { useResourceContext } from "@app/hooks/useResourceContext";
|
||||
import { resourceQueries } from "@app/lib/queries";
|
||||
import { ResourcePolicyProvider } from "@app/providers/ResourcePolicyProvider";
|
||||
import { useQuery } from "@tanstack/react-query";
|
||||
import { EditPolicyForm, type EditPolicyFormSection } from "./EditPolicyForm";
|
||||
|
||||
type ResourcePolicyEditFormProps = {
|
||||
section: Extract<EditPolicyFormSection, "authentication" | "rules">;
|
||||
};
|
||||
|
||||
export function ResourcePolicyEditForm({
|
||||
section
|
||||
}: ResourcePolicyEditFormProps) {
|
||||
const { resource } = useResourceContext();
|
||||
|
||||
const { data: policies, isLoading: isLoadingPolicies } = useQuery(
|
||||
resourceQueries.policies({
|
||||
resourceId: resource.resourceId
|
||||
})
|
||||
);
|
||||
|
||||
if (isLoadingPolicies || !policies) {
|
||||
return <></>;
|
||||
}
|
||||
|
||||
if (!policies.sharedPolicy) {
|
||||
return (
|
||||
<ResourcePolicyProvider policy={policies.defaultPolicy}>
|
||||
<EditPolicyForm hidePolicyNameForm section={section} />
|
||||
</ResourcePolicyProvider>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<ResourcePolicyProvider
|
||||
policy={policies.sharedPolicy}
|
||||
key={policies.sharedPolicy.resourcePolicyId}
|
||||
>
|
||||
<EditPolicyForm
|
||||
resourceId={resource.resourceId}
|
||||
section={section}
|
||||
/>
|
||||
</ResourcePolicyProvider>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user