@treecg/ldes-orchestrator
Version:
Fills the gaps that a Linked Data Platform (LDP) cannot do by itself for creating a Linked Data Event Stream (LDES) in LDP.
41 lines (40 loc) • 1.57 kB
JavaScript
;
/***************************************
* Title: Acl
* Description: Util function to create Acl files
* Author: Wout Slabbinck (wout.slabbinck@ugent.be)
* Created on 30/11/2021
*****************************************/
Object.defineProperty(exports, "__esModule", { value: true });
exports.AccessMode = exports.AccessSubject = exports.createAclContent = void 0;
var Vocabularies_1 = require("./Vocabularies");
function createAclContent(id, modes, agent) {
var uriModes = [];
modes.forEach(function (mode) { return uriModes.push({ "@id": mode }); });
var aclBody = {
"@context": { '@vocab': Vocabularies_1.ACL.namespace },
"@id": id,
"@type": [Vocabularies_1.ACL.Authorization],
accessTo: { '@id': './' },
default: { '@id': './' },
mode: uriModes
};
if (!agent) {
aclBody['agentClass'] = { "@id": Vocabularies_1.FOAF.Agent };
}
else {
aclBody['agent'] = { "@id": agent };
}
return aclBody;
}
exports.createAclContent = createAclContent;
var AccessSubject;
(function (AccessSubject) {
AccessSubject[AccessSubject["Agent"] = 0] = "Agent";
AccessSubject[AccessSubject["Public"] = 1] = "Public"; // everyone can interact with the accompanying resource later
})(AccessSubject = exports.AccessSubject || (exports.AccessSubject = {}));
var AccessMode;
(function (AccessMode) {
AccessMode[AccessMode["Read"] = 0] = "Read";
AccessMode[AccessMode["ReadAppend"] = 1] = "ReadAppend";
})(AccessMode = exports.AccessMode || (exports.AccessMode = {}));