From 397ef48fe516127723db4dc7cc42ef830a383f0e Mon Sep 17 00:00:00 2001 From: Michiel de Jong Date: Fri, 8 Dec 2023 10:26:24 +0100 Subject: [PATCH] allow pim:storage to be in a settings doc this way, the profile doc could be public but the pim:storage link doesn't need to be. --- src/utils/keyHelpers/accessData.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/utils/keyHelpers/accessData.ts b/src/utils/keyHelpers/accessData.ts index a6b1ea12..85471ad3 100644 --- a/src/utils/keyHelpers/accessData.ts +++ b/src/utils/keyHelpers/accessData.ts @@ -3,11 +3,20 @@ import { store } from 'solid-logic' import * as ns from '../../ns' import { NamedNode } from 'rdflib' +async fetchStoragesFromDoc(doc) => { + await store.fetcher.load(doc.uri) + return store.each(webId, ns.space('storage'), null, doc.doc()) +} + /* export const getPodRoot = async (webId: NamedNode) => { const webIdURL = new URL(webId.uri) // find storages in webId document - await store.fetcher.load(webId.uri) - const storages = store.each(webId, ns.space('storage'), null, webId.doc()) + let storages = await fetchStoragesFromDoc(webId) + const settingsDocs = store.each(webId, ns.space('settings'), null, webId.doc()) + for (let i=0; i < settingsDocs.length; i++) { + storages = storages.concat(await fetchStoragesFromDoc(settingsDocs[i])); + } + var podRoot: NamedNode | undefined if (!storages?.length) { // find storage recursively in webId URL