Skip to content

Commit 7271cd6

Browse files
authored
Merge pull request #20 from michielbdejong/fix-feature-trusted-app
fetch profile docs
2 parents d4dbc72 + eac1869 commit 7271cd6

File tree

3 files changed

+27
-30
lines changed

3 files changed

+27
-30
lines changed

package-lock.json

Lines changed: 7 additions & 21 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/acl-check.js

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,30 @@ function accessDenied (kb, doc, directory, aclDoc, agent, modesRequired, origin,
4444
return ok
4545
}
4646

47-
async function getTrustedModesForOrigin (kb, aclDoc, doc, origin) {
47+
async function getTrustedModesForOrigin (kb, aclDoc, doc, origin, fetch) {
4848
const docAuths = kb.each(null, ACL('accessTo'), doc, aclDoc)
4949
const ownerAuths = docAuths.filter(auth => kb.holds(auth, ACL('mode'), ACL('Control'), aclDoc))
5050
const owners = ownerAuths.reduce((acc, auth) => acc.concat(kb.each(auth, ACL('agent'))), []) // owners
51-
const result = await Promise.all(owners.map(owner => query(`
52-
SELECT ?mode WHERE {
53-
${owner} ${ACL('trustedApp')} ?trustedOrigin.
54-
?trustedOrigin ${ACL('origin')} ${origin};
55-
${ACL('mode')} ?mode .
56-
}`, kb)))
51+
let result
52+
try {
53+
result = await Promise.all(owners.map(owner => {
54+
return fetch(owner).then(() => {
55+
const q = `
56+
SELECT ?mode WHERE {
57+
${owner} ${ACL('trustedApp')} ?trustedOrigin.
58+
?trustedOrigin ${ACL('origin')} ${origin};
59+
${ACL('mode')} ?mode .
60+
}`
61+
return query(q, kb)
62+
}).catch(e => {
63+
log('could not fetch owner doc', owner, e.message)
64+
})
65+
}))
66+
} catch (e) {
67+
log('error checking owner profiles', e.message)
68+
}
5769
let trustedModes = []
5870
result.map(ownerResults => ownerResults.map(entry => {
59-
console.log('entry', entry['?mode'])
6071
trustedModes.push(entry['?mode'])
6172
}))
6273
return Promise.resolve(trustedModes)

test/unit/get-trusted-modes-for-origin-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ test('aclCheck getTrustedModesForOrigin() getting trusted modes from publisherSt
3636
`
3737
$rdf.parse(publisherText, publisherStore, publisher.uri, 'text/turtle')
3838

39-
aclLogic.getTrustedModesForOrigin(publisherStore, aclDoc, doc, origin).then(result => {
39+
aclLogic.getTrustedModesForOrigin(publisherStore, aclDoc, doc, origin, Promise.resolve.bind(Promise)).then(result => {
4040
t.deepEqual(result, [ACL('Read'), ACL('Write')], 'Should get a list of modes')
4141
t.end()
4242
})

0 commit comments

Comments
 (0)