UNPKG

@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.

43 lines (37 loc) 1.26 kB
/*************************************** * Title: Acl * Description: Util function to create Acl files * Author: Wout Slabbinck (wout.slabbinck@ugent.be) * Created on 30/11/2021 *****************************************/ import {URI} from "@treecg/tree-metadata-extraction/src/util/Util"; import {Acl} from "./Interfaces"; import {ACL, FOAF} from "./Vocabularies"; export function createAclContent(id: string, modes: string[]): Acl export function createAclContent(id: string, modes: string[], agent: string): Acl export function createAclContent(id: string, modes: string[], agent?: string): Acl { const uriModes: URI[] = []; modes.forEach(mode => uriModes.push({"@id": mode})); const aclBody: Acl = { "@context": {'@vocab': ACL.namespace}, "@id": id, "@type": [ACL.Authorization], accessTo: {'@id': './'}, default: {'@id': './'}, mode: uriModes }; if (!agent) { aclBody['agentClass'] = {"@id": FOAF.Agent}; } else { aclBody['agent'] = {"@id": agent}; } return aclBody; } export enum AccessSubject { Agent, // only the agent can interact with the accompanying resource later Public// everyone can interact with the accompanying resource later } export enum AccessMode { Read, ReadAppend }