aclParser.md

March 28, 2021 · View on GitHub

Classes

solidAPI.acl

Class for working with ACL using an aclAgents object

Constants

aclModes

const aclModes = ['Read', 'Append', 'Write', 'Control']

aclAccesses

const aclAccesses = ['accessTo', 'default']

aclPredicates

const aclPredicates = ['agent', 'agentClass', 'agentGroup', 'origin', 'default']

aclObject is a string, aclPredicates related :

  • agent: webId, bot, application, ...
  • agentClass: 'Agent'
  • agentGroup: URI
  • origin: origin url
  • default: '' (blank string)

Functions

aclMode(itemUrl, aclContent, options)

Check if a user or everybody has an auth

checkAcl(itemUrl, aclContent, options)

solidAPI.acl

Class for working with ACL using an aclAgents object

Kind: global class

solidAPI.acl.contentParser(url, aclcontent) ⇒ object | array

aclcontent parser

Kind: instance method of solidAPI.acl
Returns: object | array - aclAgents Object or Array of Objects

ParamTypeDescription
urlstringresource
aclcontentstringof url.acl

solidAPI.acl.createContent(url, aclAgents, options) ⇒ string

create turtle aclcontent for url resource from aclAgents object

Kind: instance method of solidAPI.acl
Returns: string - text/turtle aclContent

ParamTypeDescription
urlstringressource (not url.acl)
aclAgentsobject | arrayobject or Array of objects
optionsobjectfor isValidAcl()

Properties

NameTypeDescription
'may'options.aclDefault('must' is more prudent)
'Control'options.aclMode
ifoptions.URIused check that at least this URI has 'Control'

solidAPI.acl.addUserMode(aclAgents, userAgent, userMode, userAccess) ⇒ object

modify aclAgents object by adding agents and/or modes and/or access types

Kind: instance method of solidAPI.acl
Returns: object - aclAgents

ParamTypeDescription
aclAgentsobject
userAgentarrayarray of objects { aclPredicate: aclObject }
userModearray['Read']
userAccessarray

Properties

NameTypeDescription
defaultuserAccessvalue ['accessTo', 'default']

solidAPI.acl.deleteUserMode(aclAgents, userAgent, userMode, userAccess) ⇒ object

modify aclAgents object by removing agents and/or modes

Kind: instance method of solidAPI.acl
Returns: object - aclAgents

ParamTypeDescription
aclAgentsobject
userAgentarrayarray of objects { aclPredicate: aclObject }
userModearray['Read']
userAccessarray['accessTo', 'default']

solidAPI.acl.makeContentRelative(aclcontent, itemUrl, toName, options)

Make aclContent relative to url resource

  • make absolute paths relative to folder
  • make relative paths to pod relative to folder
  • update relative paths to the new location

Kind: instance method of solidAPI.acl

ParamTypeDescription
aclcontentstring
itemUrlstringresource url (not an url.acl)
toNamestringdestination name ('' or file name)
optionsobjectfor agent

solidAPI.acl.isValidAcl(itemUrl, content, options)

check that atleast an agent type has control and that the acl is well-formed URI is usually the webId checked to have 'Control' authorization aclDefault: 'may' (spec compliant), if 'must' then one acl: Default is needed for folder ACL aclAuth 'must' : spec compliant acl: Authorization is mandatory

Kind: instance method of solidAPI.acl
Result: object { err: [blocking errors], info: [non blocking anomalies]}

ParamType
itemUrlstring
contentstring
optionsobject

Properties

NameType
'Control'options.aclMode
'must'options.aclAuth
'may'options.aclDefault

solidAPI.acl.isValidRDF(itemUrl, content, options)

is valid RDF (parses with N3.js)

Kind: instance method of solidAPI.acl

ParamType
itemUrlstring
contentstring
optionsobject

Properties

NameTypeDescription
defaultoptions.baseIRIto itemUrl
none'text/n3'options.format

aclModes

const aclModes = ['Read', 'Append', 'Write', 'Control']

Kind: global constant

aclAccesses

const aclAccesses = ['accessTo', 'default']

Kind: global constant

aclPredicates

const aclPredicates = ['agent', 'agentClass', 'agentGroup', 'origin', 'default']

aclObject is a string, aclPredicates related :

  • agent: webId, bot, application, ...
  • agentClass: 'Agent'
  • agentGroup: URI
  • origin: origin url
  • default: '' (blank string)

Kind: global constant

aclMode(itemUrl, aclContent, options)

Check if a user or everybody has an auth

Kind: global function

ParamType
itemUrlstring
aclContentstring
optionsobject

Properties

NameTypeDescription
'Control'options.aclModeby default
checkoptions.URIfor 'Control' for a single URI : person, group, ....

checkAcl(itemUrl, aclContent, options)

Kind: global function

ParamType
itemUrlstring
aclContentstring
optionsobject