We found the following code (constants/index.js):
export const ACL_PREFIXES = {
acl: 'http://www.w3.org/ns/auth/acl#',
foaf: 'http://xmlns.com/foaf/0.1/',
n: 'http://www.w3.org/2006/vcard/ns#',
a: 'http://www.w3.org/ns/auth/acl#type'
};
which is used as follows (access-control-list.js):
const { acl, foaf, a } = ACL_PREFIXES;
const subject = `${this.aclUri}#${modes.join('')}`;
const { documentUri } = this;
const originalPredicates = [
this.createQuad(subject, `${a}`, namedNode(`${acl}Authorization`)),
this.createQuad(subject, `${acl}accessTo`, namedNode(documentUri)),
this.createQuad(subject, `${acl}default`, namedNode(documentUri))
];
However, the symbol a in Turtle points to rdf:type or http://www.w3.org/1999/02/22-rdf-syntax-ns#type, not to http://www.w3.org/ns/auth/acl#type.
So the code is creating bogus triples
<> <http://www.w3.org/ns/auth/acl#type> <http://www.w3.org/ns/auth/acl#Authorization>.
The reason it works is because the ACL checker does not need a type statement. But if we add one, we probably want to do it right 🙂
We found the following code (
constants/index.js):which is used as follows (
access-control-list.js):However, the symbol
ain Turtle points tordf:typeorhttp://www.w3.org/1999/02/22-rdf-syntax-ns#type, not tohttp://www.w3.org/ns/auth/acl#type.So the code is creating bogus triples
The reason it works is because the ACL checker does not need a type statement. But if we add one, we probably want to do it right 🙂