|
20 | 20 | */ |
21 | 21 | package com.inrupt.client.accessgrant; |
22 | 22 |
|
| 23 | +import static com.inrupt.client.vocabulary.RDF.type; |
| 24 | + |
23 | 25 | import com.inrupt.client.spi.RDFFactory; |
24 | 26 | import com.inrupt.client.util.URIBuilder; |
25 | 27 | import com.inrupt.client.vocabulary.ACP; |
@@ -47,24 +49,31 @@ private static IRI asIRI(final URI uri) { |
47 | 49 |
|
48 | 50 | public static Set<Triple> accessControlPolicyTriples(final URI acl, final URI... modes) { |
49 | 51 | final Set<Triple> triples = new HashSet<>(); |
| 52 | + final IRI a = asIRI(type); |
50 | 53 |
|
51 | 54 | // Matcher |
52 | 55 | final IRI matcher = asIRI(URIBuilder.newBuilder(acl).fragment(UUID.randomUUID().toString()).build()); |
| 56 | + triples.add(rdf.createTriple(matcher, a, asIRI(ACP.Matcher))); |
53 | 57 | triples.add(rdf.createTriple(matcher, asIRI(ACP.vc), SOLID_ACCESS_GRANT)); |
54 | 58 |
|
55 | 59 | // Policy |
56 | 60 | final IRI policy = asIRI(URIBuilder.newBuilder(acl).fragment(UUID.randomUUID().toString()).build()); |
| 61 | + triples.add(rdf.createTriple(policy, a, asIRI(ACP.Policy))); |
57 | 62 | triples.add(rdf.createTriple(policy, asIRI(ACP.allOf), matcher)); |
58 | 63 | for (final URI mode : modes ) { |
59 | 64 | triples.add(rdf.createTriple(policy, asIRI(ACP.allow), asIRI(mode))); |
60 | 65 | } |
61 | 66 |
|
62 | 67 | // Access Control |
63 | 68 | final IRI accessControl = asIRI(URIBuilder.newBuilder(acl).fragment(UUID.randomUUID().toString()).build()); |
| 69 | + triples.add(rdf.createTriple(accessControl, a, asIRI(ACP.AccessControl))); |
64 | 70 | triples.add(rdf.createTriple(accessControl, asIRI(ACP.apply), policy)); |
65 | 71 |
|
66 | | - triples.add(rdf.createTriple(asIRI(acl), asIRI(ACP.accessControl), accessControl)); |
67 | | - triples.add(rdf.createTriple(asIRI(acl), asIRI(ACP.memberAccessControl), accessControl)); |
| 72 | + // Access Control Resource |
| 73 | + final IRI subject = asIRI(acl); |
| 74 | + triples.add(rdf.createTriple(subject, a, asIRI(ACP.AccessControlResource))); |
| 75 | + triples.add(rdf.createTriple(subject, asIRI(ACP.accessControl), accessControl)); |
| 76 | + triples.add(rdf.createTriple(subject, asIRI(ACP.memberAccessControl), accessControl)); |
68 | 77 | return triples; |
69 | 78 | } |
70 | 79 |
|
|
0 commit comments