@@ -126,6 +126,39 @@ ACL resource by appending the suffix `.acl`, another server could place the ACL
126126resources into a sub-container (locating it at ` /docs/.acl/file1.acl ` for the
127127example above).
128128
129+ ## ACL Schemas
130+
131+ The following schema excerpts use these namespace prefixes:
132+ ``` turtle
133+ PREFIX acl: <http://www.w3.org/ns/auth/acl#>
134+ PREFIX dc: <http://purl.org/dc/elements/1.1/>
135+ PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
136+ PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
137+ ```
138+ ### Authorization Schema
139+ ``` turtle
140+ <#authShape> {
141+ a [acl:Authorization] ;
142+ acl:accessTo IRI ;
143+ acl:mode [acl:Read acl:Write acl:Control]+ ;
144+ ( acl:agent IRI ;
145+ | acl:agentGroup @<#groupShape> +
146+ ) ;
147+ }
148+ ```
149+
150+ ### Group Schema
151+
152+ ``` turtle
153+ <#groupShape> {
154+ a [vcard:Group] ;
155+ vcard:hasUID IRI /^urn:uuid:/ ;
156+ dc:created xsd:dateTime ? ;
157+ dc:modified xsd:dateTime ? ;
158+ vcard:hasMember IRI + ;
159+ }
160+ ```
161+
129162## ACL Inheritance Algorithm
130163
131164The following algorithm is used by servers to determine which ACL resources
@@ -272,8 +305,8 @@ Corresponding `work-groups` Group Listing document:
272305<#Accounting>
273306 a vcard:Group;
274307 vcard:hasUID <urn:uuid:8831CBAD-1111-2222-8563-F0F4787E5398:ABGroup>;
275- dc:created "2013-09-11T07:18:19+0000 "^^xsd:dateTime;
276- dc:modified "2015-08-08T14:45:15+0000 "^^xsd:dateTime;
308+ dc:created "2013-09-11T07:18:19+00:00 "^^xsd:dateTime;
309+ dc:modified "2015-08-08T14:45:15+00:00 "^^xsd:dateTime;
277310
278311 # Accounting group members:
279312 vcard:hasMember <https://bob.example.com/profile/card#me>;
@@ -286,6 +319,7 @@ Corresponding `work-groups` Group Listing document:
286319 # Management group members:
287320 vcard:hasMember <https://deb.example.com/profile/card#me>.
288321```
322+ [[ test against schema] ( https://tinyurl.com/whcrhlo )]
289323
290324#### Group Listings - Implementation Notes
291325
0 commit comments