solid-ui 2.4.23 → 2.4.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +2159 -5039
- package/dist/main.js.map +1 -1
- package/lib/acl/access-controller.js +4 -67
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.js +59 -137
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.js +14 -54
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.js +32 -107
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.js +0 -92
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/acl/index.js +1 -3
- package/lib/acl/index.js.map +1 -1
- package/lib/acl/styles.js +1 -2
- package/lib/acl/styles.js.map +1 -1
- package/lib/chat/bookmarks.js +8 -80
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +109 -180
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +6 -91
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +33 -185
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +37 -150
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +23 -96
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +33 -91
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.js +19 -51
- package/lib/create/create.js.map +1 -1
- package/lib/create/index.js +0 -2
- package/lib/create/index.js.map +1 -1
- package/lib/debug.js +0 -8
- package/lib/debug.js.map +1 -1
- package/lib/folders.js +4 -27
- package/lib/folders.js.map +1 -1
- package/lib/footer/index.js +2 -24
- package/lib/footer/index.js.map +1 -1
- package/lib/footer/styleMap.js.map +1 -1
- package/lib/header/empty-profile.js.map +1 -1
- package/lib/header/index.js +3 -72
- package/lib/header/index.js.map +1 -1
- package/lib/header/styleMap.js +4 -3
- package/lib/header/styleMap.js.map +1 -1
- package/lib/iconBase.js +3 -4
- package/lib/iconBase.js.map +1 -1
- package/lib/index.js +5 -46
- package/lib/index.js.map +1 -1
- package/lib/jss/index.js +3 -9
- package/lib/jss/index.js.map +1 -1
- package/lib/log.js +15 -51
- package/lib/log.js.map +1 -1
- package/lib/login/login.js +74 -303
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/index.js +0 -2
- package/lib/matrix/index.js.map +1 -1
- package/lib/matrix/matrix.js +7 -55
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/media/index.js +0 -2
- package/lib/media/index.js.map +1 -1
- package/lib/media/media-capture.js +13 -33
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +23 -64
- package/lib/messageArea.js.map +1 -1
- package/lib/noun_Camera_1618446_000000.js.map +1 -1
- package/lib/ns.js +5 -7
- package/lib/ns.js.map +1 -1
- package/lib/pad.js +48 -234
- package/lib/pad.js.map +1 -1
- package/lib/participation.js +10 -65
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +21 -42
- package/lib/preferences.js.map +1 -1
- package/lib/signup/config-default.js +1 -8
- package/lib/signup/config-default.js.map +1 -1
- package/lib/signup/signup.js +6 -13
- package/lib/signup/signup.js.map +1 -1
- package/lib/stories/decorators.js +0 -2
- package/lib/stories/decorators.js.map +1 -1
- package/lib/style.js +8 -5
- package/lib/style.js.map +1 -1
- package/lib/style_multiSelect.js +1 -5
- package/lib/style_multiSelect.js.map +1 -1
- package/lib/table.js +309 -322
- package/lib/table.js.map +1 -1
- package/lib/tabs.js +20 -100
- package/lib/tabs.js.map +1 -1
- package/lib/utils/headerFooterHelpers.js +4 -52
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js +41 -135
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/label.js +13 -34
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.js +4 -4
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.js +0 -8
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.js +115 -291
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +12 -41
- package/lib/widgets/dragAndDrop.js.map +1 -1
- package/lib/widgets/error.js +3 -9
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +8 -71
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +13 -65
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +15 -107
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.js +6 -55
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js +12 -131
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.js +12 -55
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.js +1 -15
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldFunction.js +3 -16
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/fieldParams.js +0 -12
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.js +1 -14
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +70 -474
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/index.js +0 -21
- package/lib/widgets/index.js.map +1 -1
- package/lib/widgets/multiSelect.js +48 -171
- package/lib/widgets/multiSelect.js.map +1 -1
- package/lib/widgets/peoplePicker.js +20 -90
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/lib/widgets/widgetHelpers.js +2 -9
- package/lib/widgets/widgetHelpers.js.map +1 -1
- package/package.json +28 -28
package/lib/acl/acl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acl.js","names":["kb","solidLogicSingleton","store","adoptACLDefault","doc","aclDoc","defaultResource","defaultACLDoc","ACL","ns","acl","isContainer","uri","slice","defaults","each","undefined","concat","proposed","reduce","accumulatedStatements","da","statementsMatching","rdf","st","kb2","graph","forEach","add","move","subject","predicate","object","sym","symbol","y","length","readACL","getDefaults","auths","getDefaultsFallback","ac","agent","agentClass","agentGroup","origin","originClass","Object","keys","pred","a","mode","sameACL","b","contains","ACLunion","list","ag","k","loadUnionACL","subjectList","callbackFunction","aclList","doList","shift","getACLorDefault","ok","p2","targetDoc","targetACLDoc","defaultHolder","defa","push","ACLbyCombination","byCombo","combo","sort","combo2","join","makeACLGraph","x","makeACLGraphbyCombo","main","pairs","modeURIs","split","short","map","u","i","ACLToString","comboToString","str","initials","sameTerm","foaf","utils","label","makeACLString","serialize","putACLObject","putACLbyCombo","updater","put","message","fetcher","unload","requested","fixIndividualCardACL","person","log","groups","vcard","fixIndividualACL","item","subjects","debug","exists","union","setACL","docURI","aclText","any","ACL_LINK","Error","webOperation","value","data","contentType","then","res","error","nowOrWhenFetched","body","getACL","status","tryParent","right","lastIndexOf","left","indexOf","doc2","nonexistent","response","getProspectiveHolder","targetDirectory","Promise","resolve","reject","isDirectACL"],"sources":["../../src/acl/acl.ts"],"sourcesContent":["/**\n * Non-UI functions for access control.\n * See https://github.com/solidos/web-access-control-spec\n * for the spec that defines how ACL documents work.\n * @packageDocumentation\n */\n\nimport * as ns from '../ns'\nimport { solidLogicSingleton, ACL_LINK } from 'solid-logic'\nimport * as utils from '../utils'\nimport { AgentMapMap, AgentMapUnion, ComboList } from './types'\nimport * as debug from '../debug'\nimport { graph, Store, NamedNode, serialize, st, Statement, sym, LiveStore } from 'rdflib'\n\nconst kb = solidLogicSingleton.store\n\n/**\n * Take the \"default\" ACL and convert it into the equivlent ACL\n * which the resource would have had. Return it as a new separate store.\n * The \"defaultForNew\" predicate is also accepted, as a deprecated\n * synonym for \"default\".\n */\nexport function adoptACLDefault (\n doc: NamedNode,\n aclDoc: NamedNode,\n defaultResource: NamedNode,\n defaultACLDoc: NamedNode\n): Store {\n const ACL = ns.acl\n const isContainer = doc.uri.slice(-1) === '/' // Give default for all directories\n\n const defaults = kb\n .each(undefined, ACL('default'), defaultResource, defaultACLDoc)\n .concat(kb.each(undefined, ACL('defaultForNew'), defaultResource, defaultACLDoc))\n\n const proposed = defaults.reduce((accumulatedStatements, da) => accumulatedStatements\n .concat(kb.statementsMatching(da as NamedNode, ns.rdf('type'), ACL('Authorization'), defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('agent'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('agentClass'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('agentGroup'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('origin'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('originClass'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('mode'), undefined, defaultACLDoc))\n .concat(st(da as NamedNode, ACL('accessTo'), doc, defaultACLDoc))\n .concat(isContainer ? st(da as NamedNode, ACL('default'), doc, defaultACLDoc) : []), [] as Statement[])\n\n const kb2 = graph() // Potential - derived is kept apart\n proposed.forEach(st => kb2.add(move(st.subject), move(st.predicate), move(st.object), sym(aclDoc.uri)))\n return kb2 as LiveStore\n\n function move (symbol) {\n const y = defaultACLDoc.uri.length // The default ACL file\n return sym(\n symbol.uri.slice(0, y) === defaultACLDoc.uri\n ? aclDoc.uri + symbol.uri.slice(y)\n : symbol.uri\n )\n }\n}\n\n/**\n * Read and canonicalize the ACL for x in aclDoc\n *\n * Accumulate the access rights which each agent or class has\n */\nexport function readACL (\n doc: NamedNode,\n aclDoc: NamedNode,\n kb2: Store = kb,\n getDefaults: boolean = false\n): AgentMapMap {\n const auths: Array<NamedNode> = getDefaults\n ? getDefaultsFallback(kb2, ns)\n : kb2.each(undefined, ns.acl('accessTo'), doc)\n\n const ACL = ns.acl\n const ac = {\n agent: {},\n agentClass: {},\n agentGroup: {},\n origin: {},\n originClass: {}\n }\n Object.keys(ac).forEach(pred => {\n auths.forEach(function (a) {\n (kb2.each(a, ACL('mode')) as Array<NamedNode>).forEach(function (mode) {\n (kb2.each(a, ACL(pred)) as Array<NamedNode>).forEach(function (agent) {\n ac[pred][agent.uri] = ac[pred][agent.uri] || {}\n ac[pred][agent.uri][mode.uri] = a // could be \"true\" but leave pointer just in case\n })\n })\n })\n })\n return ac\n\n function getDefaultsFallback (kb, ns) {\n return kb\n .each(undefined, ns.acl('default'), doc)\n .concat(kb.each(undefined, ns.acl('defaultForNew'), doc))\n }\n}\n\n/**\n * Compare two ACLs\n */\nexport function sameACL (a: AgentMapMap | AgentMapUnion, b: AgentMapMap | AgentMapUnion): boolean {\n const contains = function (a, b) {\n for (const pred in {\n agent: true,\n agentClass: true,\n agentGroup: true,\n origin: true,\n originClass: true\n }) {\n if (a[pred]) {\n for (const agent in a[pred]) {\n for (const mode in a[pred][agent]) {\n if (!b[pred][agent] || !b[pred][agent][mode]) {\n return false\n }\n }\n }\n }\n }\n return true\n }\n return contains(a, b) && contains(b, a)\n}\n\n/**\n * Union N ACLs\n */\nexport function ACLunion (list: Array<AgentMapMap | AgentMapUnion>): AgentMapUnion {\n const b = list[0]\n let a, ag\n for (let k = 1; k < list.length; k++) {\n ;['agent', 'agentClass', 'agentGroup', 'origin', 'originClass'].forEach(\n function (pred) {\n a = list[k]\n if (a[pred]) {\n for (ag in a[pred]) {\n for (const mode in a[pred][ag]) {\n if (!b[pred][ag]) b[pred][ag] = []\n b[pred][ag][mode] = true\n }\n }\n }\n }\n )\n }\n return b as AgentMapUnion\n}\n\ntype loadUnionACLCallback = (ok: boolean, message?: string | NamedNode | AgentMapUnion | AgentMapMap) => void\n\n/**\n * Merge ACLs lists from things to form union\n */\nexport function loadUnionACL (subjectList: Array<NamedNode>, callbackFunction: loadUnionACLCallback): void {\n const aclList: Array<AgentMapMap> = []\n const doList = function (list) {\n if (list.length) {\n const doc = list.shift().doc()\n getACLorDefault(doc, function (\n ok,\n p2,\n targetDoc,\n targetACLDoc,\n defaultHolder,\n defaultACLDoc\n ) {\n const defa = !p2\n if (!ok || !defaultHolder || !defaultACLDoc) return callbackFunction(ok, targetACLDoc)\n const acl = defa\n ? readACL(defaultHolder, defaultACLDoc)\n : readACL(targetDoc as NamedNode, targetACLDoc as NamedNode)\n aclList.push(acl)\n doList(list.slice(1))\n })\n } else {\n // all gone\n callbackFunction(true, ACLunion(aclList))\n }\n }\n doList(subjectList)\n}\n\n/**\n * Represents these as an RDF graph by combination of modes\n *\n * Each agent can only be in one place in this model, one combination of modes.\n * Combos are like full control, read append, read only etc.\n */\nexport function ACLbyCombination (ac: AgentMapMap | AgentMapUnion): ComboList {\n const byCombo = {}\n ;['agent', 'agentClass', 'agentGroup', 'origin', 'originClass'].forEach(function (pred) {\n for (const agent in ac[pred]) {\n const combo: string[] = []\n for (const mode in ac[pred][agent]) {\n combo.push(mode)\n }\n combo.sort()\n const combo2 = combo.join('\\n')\n if (!byCombo[combo2]) byCombo[combo2] = []\n byCombo[combo2].push([pred, agent])\n }\n })\n return byCombo\n}\n\n/**\n * Write ACL graph to store from AC\n */\nexport function makeACLGraph (kb: Store, x: NamedNode, ac: AgentMapMap, aclDoc: NamedNode): void {\n const byCombo = ACLbyCombination(ac)\n return makeACLGraphbyCombo(kb, x, byCombo, aclDoc)\n}\n\n/**\n * Write ACL graph to store from combo\n */\nexport function makeACLGraphbyCombo (\n kb: Store,\n x: NamedNode,\n byCombo: ComboList,\n aclDoc: NamedNode,\n main?: boolean,\n defa?: boolean\n): void {\n const ACL = ns.acl\n for (const combo in byCombo) {\n const pairs = byCombo[combo]\n if (!pairs.length) continue // do not add to store when no agent\n const modeURIs = combo.split('\\n')\n let short = modeURIs\n .map(function (u) {\n return u.split('#')[1]\n })\n .join('')\n if (defa && !main) short += 'Default' // don't muddle authorizations\n const a = kb.sym(aclDoc.uri + '#' + short)\n kb.add(a, ns.rdf('type'), ACL('Authorization'), aclDoc)\n if (main) {\n kb.add(a, ACL('accessTo'), x, aclDoc)\n }\n if (defa) {\n kb.add(a, ACL('default'), x, aclDoc)\n }\n for (let i = 0; i < modeURIs.length; i++) {\n kb.add(a, ACL('mode'), kb.sym(modeURIs[i]), aclDoc)\n }\n for (let i = 0; i < pairs.length; i++) {\n const pred = pairs[i][0]\n const ag = pairs[i][1]\n kb.add(a, ACL(pred), kb.sym(ag), aclDoc)\n }\n }\n}\n\n/**\n * Debugging short strings for dumping ACL\n * and possibly in the UI\n */\nexport function ACLToString (ac: AgentMapMap): string {\n return comboToString(ACLbyCombination(ac))\n}\n\n/**\n * Convert a [[ComboList]] to a string\n */\nexport function comboToString (byCombo: ComboList): string {\n let str = ''\n for (const combo in byCombo) {\n const modeURIs = combo.split('\\n')\n const initials = modeURIs\n .map(function (u) {\n return u.split('#')[1][0]\n })\n .join('')\n str += initials + ':'\n const pairs = byCombo[combo]\n for (let i = 0; i < pairs.length; i++) {\n const pred = pairs[i][0]\n const ag = sym(pairs[i][1])\n str += pred === 'agent' ? '@' : ''\n str += ag.sameTerm(ns.foaf('Agent')) ? '*' : utils.label(ag)\n if (i < pairs.length - 1) str += ','\n }\n str += ';'\n }\n return '{' + str.slice(0, -1) + '}' // drop extra semicolon\n}\n\n/**\n * Write ACL graph as Turtle\n */\nexport function makeACLString (x: NamedNode, ac: AgentMapMap, aclDoc: NamedNode): string {\n const kb2 = graph()\n makeACLGraph(kb2, x, ac, aclDoc)\n return serialize(aclDoc, kb2, aclDoc.uri, 'text/turtle') || ''\n}\n\n/**\n * Write ACL graph to web\n */\nexport function putACLObject (\n kb: LiveStore,\n x: NamedNode,\n ac: AgentMapMap | AgentMapUnion,\n aclDoc: NamedNode,\n callbackFunction: (ok: boolean, message?: string) => void\n): void {\n const byCombo = ACLbyCombination(ac)\n return putACLbyCombo(kb, x, byCombo, aclDoc, callbackFunction)\n}\n\n/**\n * Write ACL graph to web from a [[ComboList]]\n */\nexport function putACLbyCombo (\n kb: LiveStore,\n x: NamedNode,\n byCombo: ComboList,\n aclDoc: NamedNode,\n callbackFunction: (ok: boolean, message?: string) => void\n): void {\n const kb2 = graph()\n makeACLGraphbyCombo(kb2, x, byCombo, aclDoc, true)\n\n // const str = makeACLString = function(x, ac, aclDoc)\n kb.updater?.put(\n aclDoc,\n kb2.statementsMatching(undefined, undefined, undefined, aclDoc),\n 'text/turtle',\n function (uri, ok, message) {\n if (!ok) {\n callbackFunction(ok, message)\n } else {\n kb.fetcher?.unload(aclDoc)\n makeACLGraphbyCombo(kb, x, byCombo, aclDoc, true)\n kb.fetcher!.requested[aclDoc.uri] = 'done' // missing: save headers\n callbackFunction(ok)\n }\n }\n )\n}\n\ntype fixIndividualCardACLCallback = (ok: boolean, message?: string | NamedNode | AgentMapUnion | AgentMapMap) => void\ntype fixIndividualACLCallback = (ok: boolean, message?: string | NamedNode | AgentMapUnion | AgentMapMap) => void\n\n/**\n * Fix the ACl for an individual card as a function of the groups it is in\n *\n * All group files must be loaded first\n */\nexport function fixIndividualCardACL (person: NamedNode, log: Function, callbackFunction: fixIndividualCardACLCallback): void {\n const groups = kb.each(undefined, ns.vcard('hasMember'), person) as NamedNode[]\n // const doc = person.doc()\n if (groups) {\n fixIndividualACL(person, groups, log, callbackFunction)\n } else {\n log('This card is in no groups')\n callbackFunction(true) // fine, no requirements to access. default should be ok\n }\n // @@ if no groups, then use default for People container or the book top container.?\n}\n\n/**\n * This function is used by [[fixIndividualCardACL]]\n */\nexport function fixIndividualACL (item: NamedNode, subjects: Array<NamedNode>, log: Function, callbackFunction: fixIndividualACLCallback): void {\n log = log || debug.log\n const doc = item.doc()\n getACLorDefault(doc, function (\n ok,\n exists,\n targetDoc,\n targetACLDoc,\n defaultHolder,\n defaultACLDoc\n ) {\n if (!ok || !defaultHolder || !defaultACLDoc) return callbackFunction(false, targetACLDoc) // ie message\n const ac = exists\n ? readACL(targetDoc as NamedNode, targetACLDoc as NamedNode)\n : readACL(defaultHolder, defaultACLDoc)\n loadUnionACL(subjects, function (ok, union) {\n if (!ok) return callbackFunction(false, union)\n if (sameACL(union as AgentMapMap | AgentMapUnion, ac)) {\n log('Nice - same ACL. no change ' + utils.label(item) + ' ' + doc)\n } else {\n log('Group ACLs differ for ' + utils.label(item) + ' ' + doc)\n\n // log(\"Group ACLs: \" + makeACLString(targetDoc, union, targetACLDoc))\n // log((exists ? \"Previous set\" : \"Default\") + \" ACLs: \" +\n // makeACLString(targetDoc, ac, targetACLDoc))\n\n putACLObject(\n kb as unknown as LiveStore,\n targetDoc as NamedNode,\n union as AgentMapMap | AgentMapUnion,\n targetACLDoc as NamedNode,\n callbackFunction\n )\n }\n })\n })\n}\n\n/**\n * Set an ACL\n */\nexport function setACL (\n docURI: NamedNode,\n aclText: string,\n callbackFunction: (ok: boolean, message: string) => void\n): void {\n const aclDoc = kb.any(\n docURI,\n ACL_LINK\n ) // @@ check that this get set by web.js\n if (!kb.fetcher) {\n throw new Error('Store has no fetcher')\n }\n if (aclDoc) {\n // Great we already know where it is\n kb.fetcher\n .webOperation('PUT', aclDoc.value, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then((res) => {\n callbackFunction(res.ok, res.error || '')\n }) // @@@ check params\n } else {\n kb.fetcher.nowOrWhenFetched(docURI, undefined, function (ok, body) {\n if (!ok) return callbackFunction(ok, 'Gettting headers for ACL: ' + body)\n const aclDoc = kb.any(\n docURI,\n ACL_LINK\n ) // @@ check that this get set by web.js\n if (!aclDoc) {\n // complainIfBad(false, \"No Link rel=ACL header for \" + docURI)\n callbackFunction(false, 'No Link rel=ACL header for ' + docURI)\n } else {\n if (!kb.fetcher) {\n throw new Error('Store has no fetcher')\n }\n kb.fetcher\n .webOperation('PUT', aclDoc.value, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then((res) => {\n callbackFunction(res.ok, res.error || '')\n })\n }\n })\n }\n}\n\n/**\n * Get ACL file or default if necessary\n *\n * @param callbackFunction Will be called in the following ways, in the following cases:\n * * `callbackFunction(true, true, doc, aclDoc)` if the ACL did exist\n * * `callbackFunction(true, false, doc, aclDoc, defaultHolder, defaultACLDoc)` if the ACL file did not exist but a default did\n * * `callbackFunction(false, false, status, message)` when there was an error getting the original\n * * `callbackFunction(false, true, status, message)` when there was an error getting the default\n */\nexport function getACLorDefault (\n doc: NamedNode,\n callbackFunction: (\n a: boolean,\n b: boolean,\n statusOrMessage: number | NamedNode,\n message: string | NamedNode,\n c?: NamedNode,\n d?: NamedNode\n ) => void\n): void {\n getACL(doc, function (ok, status, aclDoc, message): string | void {\n const ACL = ns.acl\n if (!ok) return callbackFunction(false, false, status as number, message as string)\n\n // Recursively search for the ACL file which gives default access\n const tryParent = function (uri) {\n if (uri.slice(-1) === '/') {\n uri = uri.slice(0, -1)\n }\n const right = uri.lastIndexOf('/')\n const left = uri.indexOf('/', uri.indexOf('//') + 2)\n if (left > right) {\n return callbackFunction(false, true, 404, 'Found no ACL resource')\n }\n uri = uri.slice(0, right + 1)\n const doc2 = sym(uri)\n getACL(doc2, function (ok, status, defaultACLDoc: any): NamedNode | void {\n if (!ok) {\n return callbackFunction(\n false,\n true,\n status as number,\n `( No ACL pointer ${uri} ${status})${defaultACLDoc}`\n ) as void\n } else if (status === 403) {\n return callbackFunction(\n false,\n true,\n status,\n `( default ACL file FORBIDDEN. Stop.${uri})`\n )\n } else if (status === 404) {\n return tryParent(uri)\n } else if (status !== 200) {\n return callbackFunction(\n false,\n true,\n status as number,\n `Error status '${status}' searching for default for ${doc2}`\n )\n }\n // 200\n // statusBlock.textContent += (\" ACCESS set at \" + uri + \". End search.\")\n const defaults = kb\n .each(undefined, ACL('default'), kb.sym(uri), defaultACLDoc)\n .concat(\n kb.each(undefined, ACL('defaultForNew'), kb.sym(uri), defaultACLDoc)\n )\n if (!defaults.length) {\n return tryParent(uri) // Keep searching\n }\n const defaultHolder = kb.sym(uri)\n return callbackFunction(\n true,\n false,\n doc,\n aclDoc as NamedNode,\n defaultHolder,\n defaultACLDoc as NamedNode\n )\n })\n } // tryParent\n\n if (!ok) {\n return callbackFunction(\n false,\n false,\n status as number,\n `Error accessing Access Control information for ${doc}) ${message}`\n )\n } else if (status === 404) {\n tryParent(doc.uri) // @@ construct default one - the server should do that\n } else if (status === 403) {\n return callbackFunction(\n false,\n false,\n status,\n `(Sharing not available to you)${message}`\n )\n } else if (status !== 200) {\n return callbackFunction(\n false,\n false,\n status as number,\n `Error ${status} accessing Access Control information for ${doc}: ${message}`\n )\n } else {\n // 200\n return callbackFunction(true, true, doc, aclDoc as NamedNode)\n }\n }) // Call to getACL\n}\n\n/**\n * Calls back `(ok, status, acldoc, message)` as follows\n *\n * * `(false, 900, errormessage)` if no link header\n * * `(true, 403, documentSymbol, fileaccesserror)` if not authorized\n * * `(true, 404, documentSymbol, fileaccesserror)` if does not exist\n * * `(true, 200, documentSymbol)` if file exists and read OK\n */\nexport function getACL (\n doc: NamedNode,\n callbackFunction: (\n ok: boolean,\n messageOrStatus: number | string,\n messageOrDoc?: NamedNode | string,\n message?: string\n ) => void\n): void {\n if (!kb.fetcher) {\n throw new Error('kb has no fetcher')\n }\n kb.fetcher.nowOrWhenFetched(doc, undefined, function (ok, body) {\n if (!ok) {\n return callbackFunction(ok, `Can't get headers to find ACL for ${doc}: ${body}`)\n }\n const aclDoc = kb.any(\n doc,\n ACL_LINK\n ) // @@ check that this get set by web.js\n if (!aclDoc) {\n callbackFunction(false, 900, `No Link rel=ACL header for ${doc}`)\n } else {\n if (!kb.fetcher) {\n throw new Error('kb has no fetcher')\n }\n if (kb.fetcher.nonexistent[aclDoc.value]) {\n return callbackFunction(\n true,\n 404,\n aclDoc as NamedNode,\n `ACL file ${aclDoc} does not exist.`\n )\n }\n kb.fetcher.nowOrWhenFetched(aclDoc as NamedNode, undefined, function (\n ok,\n message,\n response\n ) {\n if (!ok) {\n callbackFunction(\n true,\n response.status,\n aclDoc as NamedNode,\n `Can't read Access Control File ${aclDoc}: ${message}`\n )\n } else {\n callbackFunction(true, 200, aclDoc as NamedNode)\n }\n })\n }\n })\n}\n\n/**\n * Calls [[getACLorDefault]] and then (?)\n */\nexport async function getProspectiveHolder (targetDirectory: string): Promise<NamedNode | undefined> {\n return new Promise((resolve, reject) => getACLorDefault(sym(targetDirectory), (\n ok,\n isDirectACL,\n targetDoc,\n targetACLDoc,\n defaultHolder\n ) => {\n if (ok) {\n return resolve((isDirectACL ? targetDoc : defaultHolder) as NamedNode)\n }\n return reject(new Error(`Error loading ${targetDirectory}`))\n }))\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acl.js","names":["kb","solidLogicSingleton","store","adoptACLDefault","doc","aclDoc","defaultResource","defaultACLDoc","ACL","ns","acl","isContainer","uri","slice","defaults","each","undefined","concat","proposed","reduce","accumulatedStatements","da","statementsMatching","rdf","st","kb2","graph","forEach","add","move","subject","predicate","object","sym","symbol","y","length","readACL","getDefaults","auths","getDefaultsFallback","ac","agent","agentClass","agentGroup","origin","originClass","Object","keys","pred","a","mode","sameACL","b","contains","ACLunion","list","ag","k","loadUnionACL","subjectList","callbackFunction","aclList","doList","shift","getACLorDefault","ok","p2","targetDoc","targetACLDoc","defaultHolder","defa","push","ACLbyCombination","byCombo","combo","sort","combo2","join","makeACLGraph","x","makeACLGraphbyCombo","main","pairs","modeURIs","split","short","map","u","i","ACLToString","comboToString","str","initials","sameTerm","foaf","utils","label","makeACLString","serialize","putACLObject","putACLbyCombo","updater","put","message","fetcher","unload","requested","fixIndividualCardACL","person","log","groups","vcard","fixIndividualACL","item","subjects","debug","exists","union","setACL","docURI","aclText","any","ACL_LINK","Error","webOperation","value","data","contentType","then","res","error","nowOrWhenFetched","body","getACL","status","tryParent","right","lastIndexOf","left","indexOf","doc2","nonexistent","response","getProspectiveHolder","targetDirectory","Promise","resolve","reject","isDirectACL"],"sources":["../../src/acl/acl.ts"],"sourcesContent":["/**\n * Non-UI functions for access control.\n * See https://github.com/solidos/web-access-control-spec\n * for the spec that defines how ACL documents work.\n * @packageDocumentation\n */\n\nimport * as ns from '../ns'\nimport { solidLogicSingleton, ACL_LINK } from 'solid-logic'\nimport * as utils from '../utils'\nimport { AgentMapMap, AgentMapUnion, ComboList } from './types'\nimport * as debug from '../debug'\nimport { graph, Store, NamedNode, serialize, st, Statement, sym, LiveStore } from 'rdflib'\n\nconst kb = solidLogicSingleton.store\n\n/**\n * Take the \"default\" ACL and convert it into the equivlent ACL\n * which the resource would have had. Return it as a new separate store.\n * The \"defaultForNew\" predicate is also accepted, as a deprecated\n * synonym for \"default\".\n */\nexport function adoptACLDefault (\n doc: NamedNode,\n aclDoc: NamedNode,\n defaultResource: NamedNode,\n defaultACLDoc: NamedNode\n): Store {\n const ACL = ns.acl\n const isContainer = doc.uri.slice(-1) === '/' // Give default for all directories\n\n const defaults = kb\n .each(undefined, ACL('default'), defaultResource, defaultACLDoc)\n .concat(kb.each(undefined, ACL('defaultForNew'), defaultResource, defaultACLDoc))\n\n const proposed = defaults.reduce((accumulatedStatements, da) => accumulatedStatements\n .concat(kb.statementsMatching(da as NamedNode, ns.rdf('type'), ACL('Authorization'), defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('agent'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('agentClass'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('agentGroup'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('origin'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('originClass'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('mode'), undefined, defaultACLDoc))\n .concat(st(da as NamedNode, ACL('accessTo'), doc, defaultACLDoc))\n .concat(isContainer ? st(da as NamedNode, ACL('default'), doc, defaultACLDoc) : []), [] as Statement[])\n\n const kb2 = graph() // Potential - derived is kept apart\n proposed.forEach(st => kb2.add(move(st.subject), move(st.predicate), move(st.object), sym(aclDoc.uri)))\n return kb2 as LiveStore\n\n function move (symbol) {\n const y = defaultACLDoc.uri.length // The default ACL file\n return sym(\n symbol.uri.slice(0, y) === defaultACLDoc.uri\n ? aclDoc.uri + symbol.uri.slice(y)\n : symbol.uri\n )\n }\n}\n\n/**\n * Read and canonicalize the ACL for x in aclDoc\n *\n * Accumulate the access rights which each agent or class has\n */\nexport function readACL (\n doc: NamedNode,\n aclDoc: NamedNode,\n kb2: Store = kb,\n getDefaults: boolean = false\n): AgentMapMap {\n const auths: Array<NamedNode> = getDefaults\n ? getDefaultsFallback(kb2, ns)\n : kb2.each(undefined, ns.acl('accessTo'), doc)\n\n const ACL = ns.acl\n const ac = {\n agent: {},\n agentClass: {},\n agentGroup: {},\n origin: {},\n originClass: {}\n }\n Object.keys(ac).forEach(pred => {\n auths.forEach(function (a) {\n (kb2.each(a, ACL('mode')) as Array<NamedNode>).forEach(function (mode) {\n (kb2.each(a, ACL(pred)) as Array<NamedNode>).forEach(function (agent) {\n ac[pred][agent.uri] = ac[pred][agent.uri] || {}\n ac[pred][agent.uri][mode.uri] = a // could be \"true\" but leave pointer just in case\n })\n })\n })\n })\n return ac\n\n function getDefaultsFallback (kb, ns) {\n return kb\n .each(undefined, ns.acl('default'), doc)\n .concat(kb.each(undefined, ns.acl('defaultForNew'), doc))\n }\n}\n\n/**\n * Compare two ACLs\n */\nexport function sameACL (a: AgentMapMap | AgentMapUnion, b: AgentMapMap | AgentMapUnion): boolean {\n const contains = function (a, b) {\n for (const pred in {\n agent: true,\n agentClass: true,\n agentGroup: true,\n origin: true,\n originClass: true\n }) {\n if (a[pred]) {\n for (const agent in a[pred]) {\n for (const mode in a[pred][agent]) {\n if (!b[pred][agent] || !b[pred][agent][mode]) {\n return false\n }\n }\n }\n }\n }\n return true\n }\n return contains(a, b) && contains(b, a)\n}\n\n/**\n * Union N ACLs\n */\nexport function ACLunion (list: Array<AgentMapMap | AgentMapUnion>): AgentMapUnion {\n const b = list[0]\n let a, ag\n for (let k = 1; k < list.length; k++) {\n ;['agent', 'agentClass', 'agentGroup', 'origin', 'originClass'].forEach(\n function (pred) {\n a = list[k]\n if (a[pred]) {\n for (ag in a[pred]) {\n for (const mode in a[pred][ag]) {\n if (!b[pred][ag]) b[pred][ag] = []\n b[pred][ag][mode] = true\n }\n }\n }\n }\n )\n }\n return b as AgentMapUnion\n}\n\ntype loadUnionACLCallback = (ok: boolean, message?: string | NamedNode | AgentMapUnion | AgentMapMap) => void\n\n/**\n * Merge ACLs lists from things to form union\n */\nexport function loadUnionACL (subjectList: Array<NamedNode>, callbackFunction: loadUnionACLCallback): void {\n const aclList: Array<AgentMapMap> = []\n const doList = function (list) {\n if (list.length) {\n const doc = list.shift().doc()\n getACLorDefault(doc, function (\n ok,\n p2,\n targetDoc,\n targetACLDoc,\n defaultHolder,\n defaultACLDoc\n ) {\n const defa = !p2\n if (!ok || !defaultHolder || !defaultACLDoc) return callbackFunction(ok, targetACLDoc)\n const acl = defa\n ? readACL(defaultHolder, defaultACLDoc)\n : readACL(targetDoc as NamedNode, targetACLDoc as NamedNode)\n aclList.push(acl)\n doList(list.slice(1))\n })\n } else {\n // all gone\n callbackFunction(true, ACLunion(aclList))\n }\n }\n doList(subjectList)\n}\n\n/**\n * Represents these as an RDF graph by combination of modes\n *\n * Each agent can only be in one place in this model, one combination of modes.\n * Combos are like full control, read append, read only etc.\n */\nexport function ACLbyCombination (ac: AgentMapMap | AgentMapUnion): ComboList {\n const byCombo = {}\n ;['agent', 'agentClass', 'agentGroup', 'origin', 'originClass'].forEach(function (pred) {\n for (const agent in ac[pred]) {\n const combo: string[] = []\n for (const mode in ac[pred][agent]) {\n combo.push(mode)\n }\n combo.sort()\n const combo2 = combo.join('\\n')\n if (!byCombo[combo2]) byCombo[combo2] = []\n byCombo[combo2].push([pred, agent])\n }\n })\n return byCombo\n}\n\n/**\n * Write ACL graph to store from AC\n */\nexport function makeACLGraph (kb: Store, x: NamedNode, ac: AgentMapMap, aclDoc: NamedNode): void {\n const byCombo = ACLbyCombination(ac)\n return makeACLGraphbyCombo(kb, x, byCombo, aclDoc)\n}\n\n/**\n * Write ACL graph to store from combo\n */\nexport function makeACLGraphbyCombo (\n kb: Store,\n x: NamedNode,\n byCombo: ComboList,\n aclDoc: NamedNode,\n main?: boolean,\n defa?: boolean\n): void {\n const ACL = ns.acl\n for (const combo in byCombo) {\n const pairs = byCombo[combo]\n if (!pairs.length) continue // do not add to store when no agent\n const modeURIs = combo.split('\\n')\n let short = modeURIs\n .map(function (u) {\n return u.split('#')[1]\n })\n .join('')\n if (defa && !main) short += 'Default' // don't muddle authorizations\n const a = kb.sym(aclDoc.uri + '#' + short)\n kb.add(a, ns.rdf('type'), ACL('Authorization'), aclDoc)\n if (main) {\n kb.add(a, ACL('accessTo'), x, aclDoc)\n }\n if (defa) {\n kb.add(a, ACL('default'), x, aclDoc)\n }\n for (let i = 0; i < modeURIs.length; i++) {\n kb.add(a, ACL('mode'), kb.sym(modeURIs[i]), aclDoc)\n }\n for (let i = 0; i < pairs.length; i++) {\n const pred = pairs[i][0]\n const ag = pairs[i][1]\n kb.add(a, ACL(pred), kb.sym(ag), aclDoc)\n }\n }\n}\n\n/**\n * Debugging short strings for dumping ACL\n * and possibly in the UI\n */\nexport function ACLToString (ac: AgentMapMap): string {\n return comboToString(ACLbyCombination(ac))\n}\n\n/**\n * Convert a [[ComboList]] to a string\n */\nexport function comboToString (byCombo: ComboList): string {\n let str = ''\n for (const combo in byCombo) {\n const modeURIs = combo.split('\\n')\n const initials = modeURIs\n .map(function (u) {\n return u.split('#')[1][0]\n })\n .join('')\n str += initials + ':'\n const pairs = byCombo[combo]\n for (let i = 0; i < pairs.length; i++) {\n const pred = pairs[i][0]\n const ag = sym(pairs[i][1])\n str += pred === 'agent' ? '@' : ''\n str += ag.sameTerm(ns.foaf('Agent')) ? '*' : utils.label(ag)\n if (i < pairs.length - 1) str += ','\n }\n str += ';'\n }\n return '{' + str.slice(0, -1) + '}' // drop extra semicolon\n}\n\n/**\n * Write ACL graph as Turtle\n */\nexport function makeACLString (x: NamedNode, ac: AgentMapMap, aclDoc: NamedNode): string {\n const kb2 = graph()\n makeACLGraph(kb2, x, ac, aclDoc)\n return serialize(aclDoc, kb2, aclDoc.uri, 'text/turtle') || ''\n}\n\n/**\n * Write ACL graph to web\n */\nexport function putACLObject (\n kb: LiveStore,\n x: NamedNode,\n ac: AgentMapMap | AgentMapUnion,\n aclDoc: NamedNode,\n callbackFunction: (ok: boolean, message?: string) => void\n): void {\n const byCombo = ACLbyCombination(ac)\n return putACLbyCombo(kb, x, byCombo, aclDoc, callbackFunction)\n}\n\n/**\n * Write ACL graph to web from a [[ComboList]]\n */\nexport function putACLbyCombo (\n kb: LiveStore,\n x: NamedNode,\n byCombo: ComboList,\n aclDoc: NamedNode,\n callbackFunction: (ok: boolean, message?: string) => void\n): void {\n const kb2 = graph()\n makeACLGraphbyCombo(kb2, x, byCombo, aclDoc, true)\n\n // const str = makeACLString = function(x, ac, aclDoc)\n kb.updater?.put(\n aclDoc,\n kb2.statementsMatching(undefined, undefined, undefined, aclDoc),\n 'text/turtle',\n function (uri, ok, message) {\n if (!ok) {\n callbackFunction(ok, message)\n } else {\n kb.fetcher?.unload(aclDoc)\n makeACLGraphbyCombo(kb, x, byCombo, aclDoc, true)\n kb.fetcher!.requested[aclDoc.uri] = 'done' // missing: save headers\n callbackFunction(ok)\n }\n }\n )\n}\n\ntype fixIndividualCardACLCallback = (ok: boolean, message?: string | NamedNode | AgentMapUnion | AgentMapMap) => void\ntype fixIndividualACLCallback = (ok: boolean, message?: string | NamedNode | AgentMapUnion | AgentMapMap) => void\n\n/**\n * Fix the ACl for an individual card as a function of the groups it is in\n *\n * All group files must be loaded first\n */\nexport function fixIndividualCardACL (person: NamedNode, log: Function, callbackFunction: fixIndividualCardACLCallback): void {\n const groups = kb.each(undefined, ns.vcard('hasMember'), person) as NamedNode[]\n // const doc = person.doc()\n if (groups) {\n fixIndividualACL(person, groups, log, callbackFunction)\n } else {\n log('This card is in no groups')\n callbackFunction(true) // fine, no requirements to access. default should be ok\n }\n // @@ if no groups, then use default for People container or the book top container.?\n}\n\n/**\n * This function is used by [[fixIndividualCardACL]]\n */\nexport function fixIndividualACL (item: NamedNode, subjects: Array<NamedNode>, log: Function, callbackFunction: fixIndividualACLCallback): void {\n log = log || debug.log\n const doc = item.doc()\n getACLorDefault(doc, function (\n ok,\n exists,\n targetDoc,\n targetACLDoc,\n defaultHolder,\n defaultACLDoc\n ) {\n if (!ok || !defaultHolder || !defaultACLDoc) return callbackFunction(false, targetACLDoc) // ie message\n const ac = exists\n ? readACL(targetDoc as NamedNode, targetACLDoc as NamedNode)\n : readACL(defaultHolder, defaultACLDoc)\n loadUnionACL(subjects, function (ok, union) {\n if (!ok) return callbackFunction(false, union)\n if (sameACL(union as AgentMapMap | AgentMapUnion, ac)) {\n log('Nice - same ACL. no change ' + utils.label(item) + ' ' + doc)\n } else {\n log('Group ACLs differ for ' + utils.label(item) + ' ' + doc)\n\n // log(\"Group ACLs: \" + makeACLString(targetDoc, union, targetACLDoc))\n // log((exists ? \"Previous set\" : \"Default\") + \" ACLs: \" +\n // makeACLString(targetDoc, ac, targetACLDoc))\n\n putACLObject(\n kb as unknown as LiveStore,\n targetDoc as NamedNode,\n union as AgentMapMap | AgentMapUnion,\n targetACLDoc as NamedNode,\n callbackFunction\n )\n }\n })\n })\n}\n\n/**\n * Set an ACL\n */\nexport function setACL (\n docURI: NamedNode,\n aclText: string,\n callbackFunction: (ok: boolean, message: string) => void\n): void {\n const aclDoc = kb.any(\n docURI,\n ACL_LINK\n ) // @@ check that this get set by web.js\n if (!kb.fetcher) {\n throw new Error('Store has no fetcher')\n }\n if (aclDoc) {\n // Great we already know where it is\n kb.fetcher\n .webOperation('PUT', aclDoc.value, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then((res) => {\n callbackFunction(res.ok, res.error || '')\n }) // @@@ check params\n } else {\n kb.fetcher.nowOrWhenFetched(docURI, undefined, function (ok, body) {\n if (!ok) return callbackFunction(ok, 'Gettting headers for ACL: ' + body)\n const aclDoc = kb.any(\n docURI,\n ACL_LINK\n ) // @@ check that this get set by web.js\n if (!aclDoc) {\n // complainIfBad(false, \"No Link rel=ACL header for \" + docURI)\n callbackFunction(false, 'No Link rel=ACL header for ' + docURI)\n } else {\n if (!kb.fetcher) {\n throw new Error('Store has no fetcher')\n }\n kb.fetcher\n .webOperation('PUT', aclDoc.value, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then((res) => {\n callbackFunction(res.ok, res.error || '')\n })\n }\n })\n }\n}\n\n/**\n * Get ACL file or default if necessary\n *\n * @param callbackFunction Will be called in the following ways, in the following cases:\n * * `callbackFunction(true, true, doc, aclDoc)` if the ACL did exist\n * * `callbackFunction(true, false, doc, aclDoc, defaultHolder, defaultACLDoc)` if the ACL file did not exist but a default did\n * * `callbackFunction(false, false, status, message)` when there was an error getting the original\n * * `callbackFunction(false, true, status, message)` when there was an error getting the default\n */\nexport function getACLorDefault (\n doc: NamedNode,\n callbackFunction: (\n a: boolean,\n b: boolean,\n statusOrMessage: number | NamedNode,\n message: string | NamedNode,\n c?: NamedNode,\n d?: NamedNode\n ) => void\n): void {\n getACL(doc, function (ok, status, aclDoc, message): string | void {\n const ACL = ns.acl\n if (!ok) return callbackFunction(false, false, status as number, message as string)\n\n // Recursively search for the ACL file which gives default access\n const tryParent = function (uri) {\n if (uri.slice(-1) === '/') {\n uri = uri.slice(0, -1)\n }\n const right = uri.lastIndexOf('/')\n const left = uri.indexOf('/', uri.indexOf('//') + 2)\n if (left > right) {\n return callbackFunction(false, true, 404, 'Found no ACL resource')\n }\n uri = uri.slice(0, right + 1)\n const doc2 = sym(uri)\n getACL(doc2, function (ok, status, defaultACLDoc: any): NamedNode | void {\n if (!ok) {\n return callbackFunction(\n false,\n true,\n status as number,\n `( No ACL pointer ${uri} ${status})${defaultACLDoc}`\n ) as void\n } else if (status === 403) {\n return callbackFunction(\n false,\n true,\n status,\n `( default ACL file FORBIDDEN. Stop.${uri})`\n )\n } else if (status === 404) {\n return tryParent(uri)\n } else if (status !== 200) {\n return callbackFunction(\n false,\n true,\n status as number,\n `Error status '${status}' searching for default for ${doc2}`\n )\n }\n // 200\n // statusBlock.textContent += (\" ACCESS set at \" + uri + \". End search.\")\n const defaults = kb\n .each(undefined, ACL('default'), kb.sym(uri), defaultACLDoc)\n .concat(\n kb.each(undefined, ACL('defaultForNew'), kb.sym(uri), defaultACLDoc)\n )\n if (!defaults.length) {\n return tryParent(uri) // Keep searching\n }\n const defaultHolder = kb.sym(uri)\n return callbackFunction(\n true,\n false,\n doc,\n aclDoc as NamedNode,\n defaultHolder,\n defaultACLDoc as NamedNode\n )\n })\n } // tryParent\n\n if (!ok) {\n return callbackFunction(\n false,\n false,\n status as number,\n `Error accessing Access Control information for ${doc}) ${message}`\n )\n } else if (status === 404) {\n tryParent(doc.uri) // @@ construct default one - the server should do that\n } else if (status === 403) {\n return callbackFunction(\n false,\n false,\n status,\n `(Sharing not available to you)${message}`\n )\n } else if (status !== 200) {\n return callbackFunction(\n false,\n false,\n status as number,\n `Error ${status} accessing Access Control information for ${doc}: ${message}`\n )\n } else {\n // 200\n return callbackFunction(true, true, doc, aclDoc as NamedNode)\n }\n }) // Call to getACL\n}\n\n/**\n * Calls back `(ok, status, acldoc, message)` as follows\n *\n * * `(false, 900, errormessage)` if no link header\n * * `(true, 403, documentSymbol, fileaccesserror)` if not authorized\n * * `(true, 404, documentSymbol, fileaccesserror)` if does not exist\n * * `(true, 200, documentSymbol)` if file exists and read OK\n */\nexport function getACL (\n doc: NamedNode,\n callbackFunction: (\n ok: boolean,\n messageOrStatus: number | string,\n messageOrDoc?: NamedNode | string,\n message?: string\n ) => void\n): void {\n if (!kb.fetcher) {\n throw new Error('kb has no fetcher')\n }\n kb.fetcher.nowOrWhenFetched(doc, undefined, function (ok, body) {\n if (!ok) {\n return callbackFunction(ok, `Can't get headers to find ACL for ${doc}: ${body}`)\n }\n const aclDoc = kb.any(\n doc,\n ACL_LINK\n ) // @@ check that this get set by web.js\n if (!aclDoc) {\n callbackFunction(false, 900, `No Link rel=ACL header for ${doc}`)\n } else {\n if (!kb.fetcher) {\n throw new Error('kb has no fetcher')\n }\n if (kb.fetcher.nonexistent[aclDoc.value]) {\n return callbackFunction(\n true,\n 404,\n aclDoc as NamedNode,\n `ACL file ${aclDoc} does not exist.`\n )\n }\n kb.fetcher.nowOrWhenFetched(aclDoc as NamedNode, undefined, function (\n ok,\n message,\n response\n ) {\n if (!ok) {\n callbackFunction(\n true,\n response.status,\n aclDoc as NamedNode,\n `Can't read Access Control File ${aclDoc}: ${message}`\n )\n } else {\n callbackFunction(true, 200, aclDoc as NamedNode)\n }\n })\n }\n })\n}\n\n/**\n * Calls [[getACLorDefault]] and then (?)\n */\nexport async function getProspectiveHolder (targetDirectory: string): Promise<NamedNode | undefined> {\n return new Promise((resolve, reject) => getACLorDefault(sym(targetDirectory), (\n ok,\n isDirectACL,\n targetDoc,\n targetACLDoc,\n defaultHolder\n ) => {\n if (ok) {\n return resolve((isDirectACL ? targetDoc : defaultHolder) as NamedNode)\n }\n return reject(new Error(`Error loading ${targetDirectory}`))\n }))\n}\n"],"mappings":"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"}
|
|
@@ -1,45 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.AddAgentButtons = void 0;
|
|
11
|
-
|
|
12
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
|
-
|
|
14
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
-
|
|
16
11
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
17
|
-
|
|
18
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
19
|
-
|
|
20
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
-
|
|
22
14
|
var debug = _interopRequireWildcard(require("../debug"));
|
|
23
|
-
|
|
24
15
|
var _iconBase = require("../iconBase");
|
|
25
|
-
|
|
26
16
|
var _login = require("../login/login");
|
|
27
|
-
|
|
28
17
|
var ns = _interopRequireWildcard(require("../ns"));
|
|
29
|
-
|
|
30
18
|
var utils = _interopRequireWildcard(require("../utils"));
|
|
31
|
-
|
|
32
19
|
var widgets = _interopRequireWildcard(require("../widgets"));
|
|
33
|
-
|
|
34
20
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
35
|
-
|
|
36
21
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
37
|
-
|
|
38
22
|
/**
|
|
39
23
|
* Contains the [[AddAgentButtons]] class
|
|
40
24
|
* @packageDocumentation
|
|
41
25
|
*/
|
|
42
|
-
|
|
43
26
|
/**
|
|
44
27
|
* Renders the Sharing pane's "+" button and the menus behind it,
|
|
45
28
|
* see https://github.com/solidos/userguide/blob/main/views/sharing/userguide.md#add
|
|
@@ -54,7 +37,6 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
54
37
|
this.rootElement = groupList.controller.dom.createElement('div');
|
|
55
38
|
this.barElement = groupList.controller.dom.createElement('div');
|
|
56
39
|
}
|
|
57
|
-
|
|
58
40
|
(0, _createClass2["default"])(AddAgentButtons, [{
|
|
59
41
|
key: "render",
|
|
60
42
|
value: function render() {
|
|
@@ -67,10 +49,8 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
67
49
|
key: "renderAddButton",
|
|
68
50
|
value: function renderAddButton() {
|
|
69
51
|
var _this = this;
|
|
70
|
-
|
|
71
52
|
return widgets.button(this.groupList.controller.dom, "".concat(_iconBase.icons.iconBase, "noun_34653_green.svg"), 'Add ...', function () {
|
|
72
53
|
_this.toggleBar();
|
|
73
|
-
|
|
74
54
|
_this.renderBar();
|
|
75
55
|
});
|
|
76
56
|
}
|
|
@@ -78,11 +58,9 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
78
58
|
key: "renderBar",
|
|
79
59
|
value: function renderBar() {
|
|
80
60
|
this.barElement.innerHTML = '';
|
|
81
|
-
|
|
82
61
|
if (!this.isExpanded) {
|
|
83
62
|
return;
|
|
84
63
|
}
|
|
85
|
-
|
|
86
64
|
this.barElement.appendChild(this.renderPersonButton());
|
|
87
65
|
this.barElement.appendChild(this.renderGroupButton());
|
|
88
66
|
this.barElement.appendChild(this.renderPublicButton());
|
|
@@ -94,7 +72,6 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
94
72
|
key: "renderSimplifiedBar",
|
|
95
73
|
value: function renderSimplifiedBar(button) {
|
|
96
74
|
var _this2 = this;
|
|
97
|
-
|
|
98
75
|
Array.from(this.barElement.children).filter(function (element) {
|
|
99
76
|
return element !== button;
|
|
100
77
|
}).forEach(function (element) {
|
|
@@ -105,10 +82,8 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
105
82
|
key: "renderPersonButton",
|
|
106
83
|
value: function renderPersonButton() {
|
|
107
84
|
var _this3 = this;
|
|
108
|
-
|
|
109
85
|
return widgets.button(this.groupList.controller.dom, _iconBase.icons.iconBase + widgets.iconForClass['vcard:Individual'], 'Add Person', function (event) {
|
|
110
86
|
_this3.renderSimplifiedBar(event.target);
|
|
111
|
-
|
|
112
87
|
_this3.renderNameForm(ns.vcard('Individual'), 'person').then(function (name) {
|
|
113
88
|
return _this3.addPerson(name);
|
|
114
89
|
}).then(function () {
|
|
@@ -122,10 +97,8 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
122
97
|
key: "renderGroupButton",
|
|
123
98
|
value: function renderGroupButton() {
|
|
124
99
|
var _this4 = this;
|
|
125
|
-
|
|
126
100
|
return widgets.button(this.groupList.controller.dom, _iconBase.icons.iconBase + widgets.iconForClass['vcard:Group'], 'Add Group', function (event) {
|
|
127
101
|
_this4.renderSimplifiedBar(event.target);
|
|
128
|
-
|
|
129
102
|
_this4.renderNameForm(ns.vcard('Group'), 'group').then(function (name) {
|
|
130
103
|
return _this4.addGroup(name);
|
|
131
104
|
}).then(function () {
|
|
@@ -144,7 +117,6 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
144
117
|
key: "renderPublicButton",
|
|
145
118
|
value: function renderPublicButton() {
|
|
146
119
|
var _this5 = this;
|
|
147
|
-
|
|
148
120
|
return widgets.button(this.groupList.controller.dom, _iconBase.icons.iconBase + widgets.iconForClass['foaf:Agent'], 'Add Everyone', function () {
|
|
149
121
|
return _this5.addAgent(ns.foaf('Agent').uri).then(function () {
|
|
150
122
|
return _this5.groupList.controller.renderTemporaryStatus('Adding the general public to those who can read. Drag the globe to a different level to give them more access.');
|
|
@@ -157,7 +129,6 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
157
129
|
key: "renderAuthenticatedAgentButton",
|
|
158
130
|
value: function renderAuthenticatedAgentButton() {
|
|
159
131
|
var _this6 = this;
|
|
160
|
-
|
|
161
132
|
return widgets.button(this.groupList.controller.dom, "".concat(_iconBase.icons.iconBase, "noun_99101.svg"), 'Anyone logged In', function () {
|
|
162
133
|
return _this6.addAgent(ns.acl('AuthenticatedAgent').uri).then(function () {
|
|
163
134
|
return _this6.groupList.controller.renderTemporaryStatus('Adding anyone logged in to those who can read. Drag the ID icon to a different level to give them more access.');
|
|
@@ -170,10 +141,8 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
170
141
|
key: "renderBotButton",
|
|
171
142
|
value: function renderBotButton() {
|
|
172
143
|
var _this7 = this;
|
|
173
|
-
|
|
174
144
|
return widgets.button(this.groupList.controller.dom, _iconBase.icons.iconBase + 'noun_Robot_849764.svg', 'A Software Agent (bot)', function (event) {
|
|
175
145
|
_this7.renderSimplifiedBar(event.target);
|
|
176
|
-
|
|
177
146
|
_this7.renderNameForm(ns.schema('Application'), 'bot').then(function (name) {
|
|
178
147
|
return _this7.addBot(name);
|
|
179
148
|
}).then(function () {
|
|
@@ -185,25 +154,19 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
185
154
|
key: "renderAppsButton",
|
|
186
155
|
value: function renderAppsButton() {
|
|
187
156
|
var _this8 = this;
|
|
188
|
-
|
|
189
157
|
return widgets.button(this.groupList.controller.dom, "".concat(_iconBase.icons.iconBase, "noun_15177.svg"), 'A Web App (origin)', function (event) {
|
|
190
158
|
_this8.renderSimplifiedBar(event.target);
|
|
191
|
-
|
|
192
159
|
var eventContext = {
|
|
193
160
|
div: _this8.barElement,
|
|
194
161
|
dom: _this8.groupList.controller.dom
|
|
195
162
|
};
|
|
196
|
-
|
|
197
163
|
var existingApps = _this8.renderAppsTable(eventContext)["catch"](function (error) {
|
|
198
164
|
return _this8.groupList.controller.renderStatus(error);
|
|
199
165
|
});
|
|
200
|
-
|
|
201
166
|
_this8.renderAppsView();
|
|
202
|
-
|
|
203
167
|
var newApp = _this8.renderNameForm(ns.schema('WebApplication'), 'webapp domain').then(function (name) {
|
|
204
168
|
return _this8.getOriginFromName(name);
|
|
205
169
|
});
|
|
206
|
-
|
|
207
170
|
Promise.race([existingApps, newApp]).then(function (origin) {
|
|
208
171
|
if (origin) {
|
|
209
172
|
_this8.groupList.addNewURI(origin);
|
|
@@ -217,9 +180,7 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
217
180
|
key: "renderAppsView",
|
|
218
181
|
value: function renderAppsView() {
|
|
219
182
|
var _this9 = this;
|
|
220
|
-
|
|
221
183
|
var trustedApplications = this.groupList.controller.context.session.paneRegistry.byName('trustedApplications');
|
|
222
|
-
|
|
223
184
|
if (trustedApplications) {
|
|
224
185
|
var trustedApplicationsElement = trustedApplications.render(null, this.groupList.controller.context);
|
|
225
186
|
trustedApplicationsElement.classList.add(this.groupList.controller.classes.trustedAppController);
|
|
@@ -236,7 +197,6 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
236
197
|
value: function () {
|
|
237
198
|
var _renderAppsTable = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(eventContext) {
|
|
238
199
|
var _this10 = this;
|
|
239
|
-
|
|
240
200
|
var trustedApps, trustedOrigins;
|
|
241
201
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
242
202
|
while (1) {
|
|
@@ -244,31 +204,22 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
244
204
|
case 0:
|
|
245
205
|
_context.next = 2;
|
|
246
206
|
return (0, _login.ensureLoadedProfile)(eventContext);
|
|
247
|
-
|
|
248
207
|
case 2:
|
|
249
208
|
trustedApps = this.groupList.store.each(eventContext.me, ns.acl('trustedApp')); // @@ TODO fix as
|
|
250
|
-
|
|
251
209
|
trustedOrigins = trustedApps.flatMap(function (app) {
|
|
252
210
|
return _this10.groupList.store.each(app, ns.acl('origin'));
|
|
253
211
|
}); // @@ TODO fix as
|
|
254
|
-
|
|
255
212
|
this.barElement.appendChild(this.groupList.controller.dom.createElement('p')).textContent = "You have ".concat(trustedOrigins.length, " selected web apps.");
|
|
256
213
|
return _context.abrupt("return", new Promise(function (resolve, reject) {
|
|
257
214
|
var appsTable = _this10.barElement.appendChild(_this10.groupList.controller.dom.createElement('table'));
|
|
258
|
-
|
|
259
215
|
appsTable.classList.add(_this10.groupList.controller.classes.trustedAppAddApplicationsTable);
|
|
260
216
|
trustedApps.forEach(function (app) {
|
|
261
217
|
var origin = _this10.groupList.store.any(app, ns.acl('origin')); // @@ TODO fix as
|
|
262
|
-
|
|
263
|
-
|
|
264
218
|
if (!origin) {
|
|
265
219
|
reject(new Error("Unable to pick app: ".concat(app.value)));
|
|
266
220
|
}
|
|
267
|
-
|
|
268
221
|
var thingTR = widgets.personTR(_this10.groupList.controller.dom, ns.acl('origin'), origin, {});
|
|
269
|
-
|
|
270
222
|
var innerTable = _this10.groupList.controller.dom.createElement('table');
|
|
271
|
-
|
|
272
223
|
var innerRow = innerTable.appendChild(_this10.groupList.controller.dom.createElement('tr'));
|
|
273
224
|
var innerLeftColumn = innerRow.appendChild(_this10.groupList.controller.dom.createElement('td'));
|
|
274
225
|
innerLeftColumn.appendChild(thingTR);
|
|
@@ -281,7 +232,6 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
281
232
|
appsTable.appendChild(innerTable);
|
|
282
233
|
});
|
|
283
234
|
}));
|
|
284
|
-
|
|
285
235
|
case 6:
|
|
286
236
|
case "end":
|
|
287
237
|
return _context.stop();
|
|
@@ -289,11 +239,9 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
289
239
|
}
|
|
290
240
|
}, _callee, this);
|
|
291
241
|
}));
|
|
292
|
-
|
|
293
242
|
function renderAppsTable(_x) {
|
|
294
243
|
return _renderAppsTable.apply(this, arguments);
|
|
295
244
|
}
|
|
296
|
-
|
|
297
245
|
return renderAppsTable;
|
|
298
246
|
}()
|
|
299
247
|
}, {
|
|
@@ -315,29 +263,22 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
315
263
|
_context2.next = 2;
|
|
316
264
|
break;
|
|
317
265
|
}
|
|
318
|
-
|
|
319
266
|
return _context2.abrupt("return", this.toggleBar());
|
|
320
|
-
|
|
321
267
|
case 2:
|
|
322
268
|
// user cancelled
|
|
323
269
|
domainNameRegexp = /^https?:/i;
|
|
324
|
-
|
|
325
270
|
if (name.match(domainNameRegexp)) {
|
|
326
271
|
_context2.next = 5;
|
|
327
272
|
break;
|
|
328
273
|
}
|
|
329
|
-
|
|
330
274
|
return _context2.abrupt("return", Promise.reject(new Error('Not a http URI')));
|
|
331
|
-
|
|
332
275
|
case 5:
|
|
333
276
|
// @@ check it actually is a person and has an owner who agrees they own it
|
|
334
277
|
debug.log("Adding to ACL person: ".concat(name));
|
|
335
278
|
_context2.next = 8;
|
|
336
279
|
return this.groupList.addNewURI(name);
|
|
337
|
-
|
|
338
280
|
case 8:
|
|
339
281
|
this.toggleBar();
|
|
340
|
-
|
|
341
282
|
case 9:
|
|
342
283
|
case "end":
|
|
343
284
|
return _context2.stop();
|
|
@@ -345,11 +286,9 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
345
286
|
}
|
|
346
287
|
}, _callee2, this);
|
|
347
288
|
}));
|
|
348
|
-
|
|
349
289
|
function addPerson(_x2) {
|
|
350
290
|
return _addPerson.apply(this, arguments);
|
|
351
291
|
}
|
|
352
|
-
|
|
353
292
|
return addPerson;
|
|
354
293
|
}()
|
|
355
294
|
}, {
|
|
@@ -365,29 +304,22 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
365
304
|
_context3.next = 2;
|
|
366
305
|
break;
|
|
367
306
|
}
|
|
368
|
-
|
|
369
307
|
return _context3.abrupt("return", this.toggleBar());
|
|
370
|
-
|
|
371
308
|
case 2:
|
|
372
309
|
// user cancelled
|
|
373
310
|
domainNameRegexp = /^https?:/i;
|
|
374
|
-
|
|
375
311
|
if (name.match(domainNameRegexp)) {
|
|
376
312
|
_context3.next = 5;
|
|
377
313
|
break;
|
|
378
314
|
}
|
|
379
|
-
|
|
380
315
|
return _context3.abrupt("return", Promise.reject(new Error('Not a http URI')));
|
|
381
|
-
|
|
382
316
|
case 5:
|
|
383
317
|
// @@ check it actually is a group and has an owner who agrees they own it
|
|
384
318
|
debug.log('Adding to ACL group: ' + name);
|
|
385
319
|
_context3.next = 8;
|
|
386
320
|
return this.groupList.addNewURI(name);
|
|
387
|
-
|
|
388
321
|
case 8:
|
|
389
322
|
this.toggleBar();
|
|
390
|
-
|
|
391
323
|
case 9:
|
|
392
324
|
case "end":
|
|
393
325
|
return _context3.stop();
|
|
@@ -395,11 +327,9 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
395
327
|
}
|
|
396
328
|
}, _callee3, this);
|
|
397
329
|
}));
|
|
398
|
-
|
|
399
330
|
function addGroup(_x3) {
|
|
400
331
|
return _addGroup.apply(this, arguments);
|
|
401
332
|
}
|
|
402
|
-
|
|
403
333
|
return addGroup;
|
|
404
334
|
}()
|
|
405
335
|
}, {
|
|
@@ -412,10 +342,8 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
412
342
|
case 0:
|
|
413
343
|
_context4.next = 2;
|
|
414
344
|
return this.groupList.addNewURI(agentUri);
|
|
415
|
-
|
|
416
345
|
case 2:
|
|
417
346
|
this.toggleBar();
|
|
418
|
-
|
|
419
347
|
case 3:
|
|
420
348
|
case "end":
|
|
421
349
|
return _context4.stop();
|
|
@@ -423,11 +351,9 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
423
351
|
}
|
|
424
352
|
}, _callee4, this);
|
|
425
353
|
}));
|
|
426
|
-
|
|
427
354
|
function addAgent(_x4) {
|
|
428
355
|
return _addAgent.apply(this, arguments);
|
|
429
356
|
}
|
|
430
|
-
|
|
431
357
|
return addAgent;
|
|
432
358
|
}()
|
|
433
359
|
}, {
|
|
@@ -443,29 +369,22 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
443
369
|
_context5.next = 2;
|
|
444
370
|
break;
|
|
445
371
|
}
|
|
446
|
-
|
|
447
372
|
return _context5.abrupt("return", this.toggleBar());
|
|
448
|
-
|
|
449
373
|
case 2:
|
|
450
374
|
// user cancelled
|
|
451
375
|
domainNameRegexp = /^https?:/i;
|
|
452
|
-
|
|
453
376
|
if (name.match(domainNameRegexp)) {
|
|
454
377
|
_context5.next = 5;
|
|
455
378
|
break;
|
|
456
379
|
}
|
|
457
|
-
|
|
458
380
|
return _context5.abrupt("return", Promise.reject(new Error('Not a http URI')));
|
|
459
|
-
|
|
460
381
|
case 5:
|
|
461
382
|
// @@ check it actually is a bot and has an owner who agrees they own it
|
|
462
383
|
debug.log('Adding to ACL bot: ' + name);
|
|
463
384
|
_context5.next = 8;
|
|
464
385
|
return this.groupList.addNewURI(name);
|
|
465
|
-
|
|
466
386
|
case 8:
|
|
467
387
|
this.toggleBar();
|
|
468
|
-
|
|
469
388
|
case 9:
|
|
470
389
|
case "end":
|
|
471
390
|
return _context5.stop();
|
|
@@ -473,11 +392,9 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
473
392
|
}
|
|
474
393
|
}, _callee5, this);
|
|
475
394
|
}));
|
|
476
|
-
|
|
477
395
|
function addBot(_x5) {
|
|
478
396
|
return _addBot.apply(this, arguments);
|
|
479
397
|
}
|
|
480
|
-
|
|
481
398
|
return addBot;
|
|
482
399
|
}()
|
|
483
400
|
}, {
|
|
@@ -493,26 +410,20 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
493
410
|
_context6.next = 2;
|
|
494
411
|
break;
|
|
495
412
|
}
|
|
496
|
-
|
|
497
413
|
return _context6.abrupt("return", Promise.resolve());
|
|
498
|
-
|
|
499
414
|
case 2:
|
|
500
415
|
// user cancelled
|
|
501
416
|
domainNameRegexp = /^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i; // https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html
|
|
502
|
-
|
|
503
417
|
if (name.match(domainNameRegexp)) {
|
|
504
418
|
_context6.next = 5;
|
|
505
419
|
break;
|
|
506
420
|
}
|
|
507
|
-
|
|
508
421
|
return _context6.abrupt("return", Promise.reject(new Error('Not a domain name')));
|
|
509
|
-
|
|
510
422
|
case 5:
|
|
511
423
|
origin = 'https://' + name;
|
|
512
424
|
debug.log('Adding to ACL origin: ' + origin);
|
|
513
425
|
this.toggleBar();
|
|
514
426
|
return _context6.abrupt("return", origin);
|
|
515
|
-
|
|
516
427
|
case 9:
|
|
517
428
|
case "end":
|
|
518
429
|
return _context6.stop();
|
|
@@ -520,11 +431,9 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
520
431
|
}
|
|
521
432
|
}, _callee6, this);
|
|
522
433
|
}));
|
|
523
|
-
|
|
524
434
|
function getOriginFromName(_x6) {
|
|
525
435
|
return _getOriginFromName.apply(this, arguments);
|
|
526
436
|
}
|
|
527
|
-
|
|
528
437
|
return getOriginFromName;
|
|
529
438
|
}()
|
|
530
439
|
}, {
|
|
@@ -535,6 +444,5 @@ var AddAgentButtons = /*#__PURE__*/function () {
|
|
|
535
444
|
}]);
|
|
536
445
|
return AddAgentButtons;
|
|
537
446
|
}();
|
|
538
|
-
|
|
539
447
|
exports.AddAgentButtons = AddAgentButtons;
|
|
540
448
|
//# sourceMappingURL=add-agent-buttons.js.map
|