refactor(webui): consume core access explanations
This commit is contained in:
@@ -18,7 +18,7 @@
|
|||||||
"LICENSE"
|
"LICENSE"
|
||||||
],
|
],
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@govoplan/core-webui": "^0.1.8",
|
"@govoplan/core-webui": "^0.1.9",
|
||||||
"lucide-react": "^1.23.0",
|
"lucide-react": "^1.23.0",
|
||||||
"react": "^19.0.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.0.0",
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@govoplan/core-webui": "^0.1.8",
|
"@govoplan/core-webui": "^0.1.9",
|
||||||
"lucide-react": "^1.23.0",
|
"lucide-react": "^1.23.0",
|
||||||
"react": "^19.0.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.0.0",
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
import type { ApiSettings, DeltaDeletedItem, PrivacyRetentionPolicy, TenantAdminItem } from "@govoplan/core-webui";
|
import type {
|
||||||
import { apiFetch, apiGetList, apiPath, apiQuery } from "@govoplan/core-webui";
|
AccessDecisionProvenanceItem as CoreAccessDecisionProvenanceItem,
|
||||||
|
ApiSettings,
|
||||||
|
DeltaDeletedItem,
|
||||||
|
PrivacyRetentionPolicy,
|
||||||
|
ResourceAccessExplanationOptions,
|
||||||
|
ResourceAccessExplanationResponse as CoreResourceAccessExplanationResponse,
|
||||||
|
TenantAdminItem
|
||||||
|
} from "@govoplan/core-webui";
|
||||||
|
import { apiFetch, apiGetList, apiPath, apiQuery, fetchResourceAccessExplanation as fetchCoreResourceAccessExplanation } from "@govoplan/core-webui";
|
||||||
export { fetchAdminOverview, fetchPermissionCatalog, fetchTenants } from "@govoplan/core-webui";
|
export { fetchAdminOverview, fetchPermissionCatalog, fetchTenants } from "@govoplan/core-webui";
|
||||||
export type {
|
export type {
|
||||||
AdminOverview,
|
AdminOverview,
|
||||||
@@ -101,12 +109,7 @@ export type AccessScopeExplanationItem = {
|
|||||||
sources: AccessRoleSourceItem[];
|
sources: AccessRoleSourceItem[];
|
||||||
};
|
};
|
||||||
|
|
||||||
export type AccessDecisionProvenanceItem = {
|
export type AccessDecisionProvenanceItem = Omit<CoreAccessDecisionProvenanceItem, "details"> & {
|
||||||
kind: string;
|
|
||||||
id?: string | null;
|
|
||||||
label?: string | null;
|
|
||||||
tenant_id?: string | null;
|
|
||||||
source?: string | null;
|
|
||||||
details: Record<string, unknown>;
|
details: Record<string, unknown>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -136,13 +139,7 @@ export type UserAccessExplanationResponse = {
|
|||||||
function_facts: FunctionFactExplanationItem[];
|
function_facts: FunctionFactExplanationItem[];
|
||||||
};
|
};
|
||||||
|
|
||||||
export type ResourceAccessExplanationResponse = {
|
export type ResourceAccessExplanationResponse = CoreResourceAccessExplanationResponse<UserAdminItem, AccessDecisionProvenanceItem>;
|
||||||
user: UserAdminItem;
|
|
||||||
resource_type: string;
|
|
||||||
resource_id: string;
|
|
||||||
action: string;
|
|
||||||
provenance: AccessDecisionProvenanceItem[];
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SystemAccountItem = {
|
export type SystemAccountItem = {
|
||||||
account_id: string;
|
account_id: string;
|
||||||
@@ -356,15 +353,9 @@ export function fetchUserAccessExplanation(settings: ApiSettings, userId: string
|
|||||||
|
|
||||||
export function fetchResourceAccessExplanation(
|
export function fetchResourceAccessExplanation(
|
||||||
settings: ApiSettings,
|
settings: ApiSettings,
|
||||||
options: { userId: string; resourceType: string; resourceId: string; action: string; tenantId?: string | null }
|
options: ResourceAccessExplanationOptions
|
||||||
): Promise<ResourceAccessExplanationResponse> {
|
): Promise<ResourceAccessExplanationResponse> {
|
||||||
return apiFetch(settings, apiPath("/api/v1/admin/access/resource-explanation", {
|
return fetchCoreResourceAccessExplanation<UserAdminItem, AccessDecisionProvenanceItem>(settings, options);
|
||||||
user_id: options.userId,
|
|
||||||
resource_type: options.resourceType,
|
|
||||||
resource_id: options.resourceId,
|
|
||||||
action: options.action,
|
|
||||||
tenant_id: options.tenantId
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function fetchGroups(settings: ApiSettings): Promise<GroupSummary[]> {
|
export async function fetchGroups(settings: ApiSettings): Promise<GroupSummary[]> {
|
||||||
|
|||||||
@@ -2,4 +2,6 @@ export { default } from "./module";
|
|||||||
export * from "./module";
|
export * from "./module";
|
||||||
export * from "./api/admin";
|
export * from "./api/admin";
|
||||||
export { default as AdminPage } from "./features/admin/AdminPage";
|
export { default as AdminPage } from "./features/admin/AdminPage";
|
||||||
|
export { ResourceAccessExplanation } from "@govoplan/core-webui";
|
||||||
|
export type { ResourceAccessExplanationOptions, ResourceAccessExplanationProps, ResourceAccessExplanationUser } from "@govoplan/core-webui";
|
||||||
export type { PlatformWebModule, PlatformNavItem, PlatformRouteContribution, PlatformRouteContext } from "@govoplan/core-webui";
|
export type { PlatformWebModule, PlatformNavItem, PlatformRouteContribution, PlatformRouteContext } from "@govoplan/core-webui";
|
||||||
|
|||||||
Reference in New Issue
Block a user