in src/providers/Permissions/provider.tsx [17:43]
namespace: getDefaultNamespace(),
},
});
const result = await kubeObject.getAuthorization(action);
return {
action,
kind: config.kind,
allowed: result.status.allowed,
};
};
export const PermissionsContextProvider = <T extends Record<string, PermissionConfig[]>>({
children,
permissionConfigs,
}: PermissionsProviderProps<T>) => {
const queryResults = useQueries(
Object.entries(permissionConfigs).flatMap(([action, configs]) =>
configs.map((configItem) => ({
queryKey: ['permissions', action, configItem.config.kind],
queryFn: () => fetchPermission(action as Action, configItem),
staleTime: 60000, // 1 minute cache time
}))
)
);
const permissions = queryResults.reduce((acc, result) => {
if (result.isSuccess && result.data) {