oldaplib 0.3.30__py3-none-any.whl → 0.4.0__py3-none-any.whl
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.
- oldaplib/ontologies/admin-testing.trig +62 -11
- oldaplib/ontologies/admin.trig +12 -51
- oldaplib/ontologies/gaga.trigs +23 -0
- oldaplib/ontologies/oldap.trig +138 -62
- oldaplib/src/connection.py +39 -34
- oldaplib/src/enums/adminpermissions.py +1 -1
- oldaplib/src/enums/datapermissions.py +20 -3
- oldaplib/src/enums/{permissionsetattr.py → roleattr.py} +2 -3
- oldaplib/src/enums/userattr.py +3 -2
- oldaplib/src/helpers/observable_dict.py +1 -0
- oldaplib/src/in_project.py +0 -1
- oldaplib/src/objectfactory.py +348 -104
- oldaplib/src/propertyclass.py +1 -1
- oldaplib/src/{permissionset.py → role.py} +90 -112
- oldaplib/src/user.py +176 -97
- oldaplib/src/userdataclass.py +67 -38
- oldaplib/src/version.py +1 -1
- oldaplib/test/test_datamodel.py +5 -2
- oldaplib/test/test_in_project.py +21 -20
- oldaplib/test/test_objectfactory.py +100 -34
- oldaplib/test/test_resourceclass.py +3 -3
- oldaplib/test/test_role.py +407 -0
- oldaplib/test/test_user.py +158 -98
- oldaplib/testdata/instances_test.trig +48 -26
- {oldaplib-0.3.30.dist-info → oldaplib-0.4.0.dist-info}/METADATA +1 -1
- {oldaplib-0.3.30.dist-info → oldaplib-0.4.0.dist-info}/RECORD +27 -26
- oldaplib/test/test_permissionset.py +0 -443
- {oldaplib-0.3.30.dist-info → oldaplib-0.4.0.dist-info}/WHEEL +0 -0
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
|
|
13
13
|
:admin {
|
|
14
14
|
|
|
15
|
+
#
|
|
16
|
+
# add to prohjects for testing
|
|
17
|
+
#
|
|
15
18
|
:HyperHamlet a :Project ;
|
|
16
19
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
17
20
|
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
@@ -34,15 +37,42 @@
|
|
|
34
37
|
rdfs:comment "Elite network between Switzerland and Great Britain"@en ;
|
|
35
38
|
:projectStart "2023-07-01"^^xsd:date .
|
|
36
39
|
|
|
37
|
-
|
|
40
|
+
#
|
|
41
|
+
# add roles for the two test projects
|
|
42
|
+
#
|
|
43
|
+
hyha:HyperHamletMember a :Role ;
|
|
38
44
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
39
45
|
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
40
46
|
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
41
47
|
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
42
|
-
rdfs:label "
|
|
43
|
-
:givesPermission :DATA_UPDATE ;
|
|
48
|
+
rdfs:label "Team HyperHamlet"@en, "Team HyperHamlet"@de, "Équipe HyperHamlet"@fr, "Team HyperHamlet"@it ;
|
|
44
49
|
:definedByProject :HyperHamlet .
|
|
45
50
|
|
|
51
|
+
britnet:BritnetEditor a :Role ;
|
|
52
|
+
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
53
|
+
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
54
|
+
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
55
|
+
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
56
|
+
rdfs:label "Team SwissBritNet Editor"@en, "Team SwissBritNet Editor"@de, "Équipe SwissBritNet Editor"@fr, "Team SwissBritNet Editor"@it ;
|
|
57
|
+
:definedByProject <http://www.salsah.org/version/2.0/SwissBritNet> .
|
|
58
|
+
|
|
59
|
+
#
|
|
60
|
+
# Add additional projects admin permissions and roles/default data permissions to user "rosenth"
|
|
61
|
+
#
|
|
62
|
+
<https://orcid.org/0000-0003-1681-4036> :inProject :HyperHamlet .
|
|
63
|
+
<<<https://orcid.org/0000-0003-1681-4036> :inProject :HyperHamlet>> :hasAdminPermission :ADMIN_RESOURCES .
|
|
64
|
+
<https://orcid.org/0000-0003-1681-4036> :hasRole hyha:HyperHamletMember .
|
|
65
|
+
<<<https://orcid.org/0000-0003-1681-4036> :hasRole hyha:HyperHamletMember>> :hasDefaultDataPermission :DATA_PERMISSIONS .
|
|
66
|
+
|
|
67
|
+
<https://orcid.org/0000-0003-1681-4036> :inProject <http://www.salsah.org/version/2.0/SwissBritNet> .
|
|
68
|
+
<<<https://orcid.org/0000-0003-1681-4036> :inProject <http://www.salsah.org/version/2.0/SwissBritNet>>> :hasAdminPermission
|
|
69
|
+
:ADMIN_USERS, :ADMIN_ROLES, :ADMIN_RESOURCES, :ADMIN_MODEL, :ADMIN_CREATE, :ADMIN_LISTS .
|
|
70
|
+
<https://orcid.org/0000-0003-1681-4036> :hasRole britnet:BritnetEditor .
|
|
71
|
+
<<<https://orcid.org/0000-0003-1681-4036> :hasRole britnet:BritnetEditor>> :hasDefaultDataPermission :DATA_DELETE .
|
|
72
|
+
|
|
73
|
+
#
|
|
74
|
+
# Add more test users
|
|
75
|
+
#
|
|
46
76
|
<urn:uuid:3c9bdb26-2451-443c-9ece-edf285639dcc> a oldap:User ;
|
|
47
77
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
48
78
|
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
@@ -54,15 +84,12 @@
|
|
|
54
84
|
schema:email "lukas.rosenthaler@unibas.ch"^^xsd:string ;
|
|
55
85
|
:credentials "$2b$12$i2MZSo1p6sYGnMRFxjP8dempYr6p5/HDa93Dm3cMglqUpfQ4bSdgy"^^xsd:string ; # SwissBritNet
|
|
56
86
|
:inProject <http://www.salsah.org/version/2.0/SwissBritNet> ;
|
|
57
|
-
:
|
|
87
|
+
:hasRole :Unknown, hyha:HyperHamletMember, britnet:BritnetEditor ;
|
|
58
88
|
:isActive true .
|
|
59
89
|
|
|
60
90
|
<<<urn:uuid:3c9bdb26-2451-443c-9ece-edf285639dcc> :inProject <http://www.salsah.org/version/2.0/SwissBritNet>>>
|
|
61
|
-
:hasAdminPermission :ADMIN_USERS, :
|
|
62
|
-
|
|
63
|
-
<<<https://orcid.org/0000-0003-1681-4036> :inProject :HyperHamlet>> :hasAdminPermission :ADMIN_RESOURCES .
|
|
64
|
-
<<<https://orcid.org/0000-0003-1681-4036> :inProject <http://www.salsah.org/version/2.0/SwissBritNet>>> :hasAdminPermission
|
|
65
|
-
:ADMIN_USERS, :ADMIN_PERMISSION_SETS, :ADMIN_RESOURCES, :ADMIN_MODEL, :ADMIN_CREATE, :ADMIN_LISTS .
|
|
91
|
+
:hasAdminPermission :ADMIN_USERS, :ADMIN_ROLES, :ADMIN_RESOURCES, :ADMIN_CREATE, :ADMIN_LISTS .
|
|
92
|
+
<<<urn:uuid:3c9bdb26-2451-443c-9ece-edf285639dcc> :hasRole britnet:BritnetEditor>> :hasDefaultDataPermission :DATA_VIEW .
|
|
66
93
|
|
|
67
94
|
<https://orcid.org/0000-0003-1485-4923> a oldap:User ;
|
|
68
95
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
@@ -75,10 +102,14 @@
|
|
|
75
102
|
schema:email "peter.fornaro@unibas.ch"^^xsd:string ;
|
|
76
103
|
:credentials "$2b$12$jWCJZ.qdXE9MSCPdUc0y4.9swWYJcgLZn0ePtRTu/7U8qH/OXXkB2"^^xsd:string ;
|
|
77
104
|
:inProject :HyperHamlet ;
|
|
78
|
-
:
|
|
105
|
+
:hasRole :Unknown, hyha:HyperHamletMember ;
|
|
79
106
|
:isActive true .
|
|
80
107
|
|
|
108
|
+
<<<https://orcid.org/0000-0003-1485-4923> :inProject :HyperHamlet>> :hasAdminPermission :ADMIN_RESOURCES, :ADMIN_CREATE, :ADMIN_LISTS .
|
|
109
|
+
|
|
81
110
|
<<<https://orcid.org/0000-0003-1485-4923> :inProject :HyperHamlet>> :hasAdminPermission :ADMIN_RESOURCES .
|
|
111
|
+
<<<https://orcid.org/0000-0003-1485-4923> :hasRole :Unknown>> :hasDefaultDataPermission :DATA_VIEW .
|
|
112
|
+
<<<https://orcid.org/0000-0003-1485-4923> :hasRole hyha:HyperHamletMember>> :hasDefaultDataPermission :DATA_UPDATE .
|
|
82
113
|
|
|
83
114
|
<https://orcid.org/0000-0002-7403-9595> a oldap:User ;
|
|
84
115
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
@@ -91,11 +122,31 @@
|
|
|
91
122
|
schema:email "ina.habermann@unibas.ch"^^xsd:string ;
|
|
92
123
|
:credentials "*"^^xsd:string ;
|
|
93
124
|
:inProject <http://www.salsah.org/version/2.0/SwissBritNet> ;
|
|
94
|
-
:
|
|
125
|
+
:hasRole :Unknown, hyha:HyperHamletMember, britnet:BritnetEditor ;
|
|
95
126
|
:isActive true .
|
|
96
127
|
|
|
97
128
|
<<<https://orcid.org/0000-0002-7403-9595> :inProject <http://www.salsah.org/version/2.0/SwissBritNet>>> :hasAdminPermission :ADMIN_RESOURCES .
|
|
98
129
|
|
|
130
|
+
<<<https://orcid.org/0000-0002-7403-9595> :hasRole :Unknown>> :hasDefaultDataPermission :DATA_VIEW .
|
|
131
|
+
<<<https://orcid.org/0000-0002-7403-9595> :hasRole hyha:HyperHamletMember>> :hasDefaultDataPermission :DATA_UPDATE .
|
|
132
|
+
<<<https://orcid.org/0000-0002-7403-9595> :hasRole britnet:BritnetEditor>> :hasDefaultDataPermission :DATA_UPDATE .
|
|
133
|
+
|
|
134
|
+
<https://orcid.org/0000-0001-9277-3921> a oldap:User ;
|
|
135
|
+
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
136
|
+
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
137
|
+
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
138
|
+
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
139
|
+
:userId "bugsbunny"^^xsd:NCName ;
|
|
140
|
+
schema:familyName "Bunny"^^xsd:string ;
|
|
141
|
+
schema:givenName "Bugs"^^xsd:string ;
|
|
142
|
+
schema:email "bugs.bunny@warnerbrothers.com"^^xsd:string ;
|
|
143
|
+
:credentials "$2b$12$YK2g0KFvkelCZwCcE38UguIE/3aMPjO4XIX.9FJgYJoz2m.5sDlZK"^^xsd:string ; # "DuffyDuck"
|
|
144
|
+
:inProject :HyperHamlet ;
|
|
145
|
+
:hasRole :Unknown ;
|
|
146
|
+
:isActive false .
|
|
147
|
+
|
|
148
|
+
<<<https://orcid.org/0000-0001-9277-3921> :hasRole :Unknown>> :hasDefaultDataPermission :DATA_RESTRICTED .
|
|
149
|
+
|
|
99
150
|
}
|
|
100
151
|
|
|
101
152
|
hyha:shacl {
|
oldaplib/ontologies/admin.trig
CHANGED
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
rdfs:label "ADMIN_USERS"@en ;
|
|
26
26
|
rdfs:comment "add/modify/delete users."@en .
|
|
27
27
|
|
|
28
|
-
:
|
|
29
|
-
rdfs:label "
|
|
30
|
-
rdfs:comment "Add/change/remove
|
|
28
|
+
:ADMIN_ROLES a :AdminPermission ;
|
|
29
|
+
rdfs:label "ADMIN_ROLES"@en ;
|
|
30
|
+
rdfs:comment "Add/change/remove roles"@en .
|
|
31
31
|
|
|
32
32
|
:ADMIN_RESOURCES a :AdminPermission ;
|
|
33
33
|
rdfs:label "ADMIN_RESOURCES"@en ;
|
|
@@ -106,40 +106,12 @@
|
|
|
106
106
|
#==================================================================
|
|
107
107
|
# Define default permission sets here
|
|
108
108
|
#
|
|
109
|
-
:
|
|
109
|
+
:Unknown a :Role ;
|
|
110
110
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
111
111
|
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
112
112
|
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
113
113
|
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
114
|
-
rdfs:label "
|
|
115
|
-
:givesPermission :DATA_RESTRICTED ;
|
|
116
|
-
:definedByProject :SystemProject .
|
|
117
|
-
|
|
118
|
-
:GenericView a :PermissionSet ;
|
|
119
|
-
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
120
|
-
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
121
|
-
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
122
|
-
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
123
|
-
rdfs:label "GenericView"@en, "GenericView"@de, "GenericView"@fr, "GenericView"@it ;
|
|
124
|
-
:givesPermission :DATA_VIEW ;
|
|
125
|
-
:definedByProject :SystemProject .
|
|
126
|
-
|
|
127
|
-
:GenericExtend a :PermissionSet ;
|
|
128
|
-
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
129
|
-
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
130
|
-
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
131
|
-
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
132
|
-
rdfs:label "GenericExtend"@en, "GenericExtend"@de, "GenericExtend"@fr, "GenericExtend"@it ;
|
|
133
|
-
:givesPermission :DATA_EXTEND ;
|
|
134
|
-
:definedByProject :SystemProject .
|
|
135
|
-
|
|
136
|
-
:GenericUpdate a :PermissionSet ;
|
|
137
|
-
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
138
|
-
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
139
|
-
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
140
|
-
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
141
|
-
rdfs:label "GenericUpdate"@en, "GenericUpdate"@de, "GenericUpdate"@fr, "GenericUpdate"@it ;
|
|
142
|
-
:givesPermission :DATA_UPDATE ;
|
|
114
|
+
rdfs:label "Unknown user"@en, "Unbekannte(r) Nutzer:in"@de, "Utilisateur inconnu"@fr, "Utenti sconosciuti"@it ;
|
|
143
115
|
:definedByProject :SystemProject .
|
|
144
116
|
|
|
145
117
|
#==================================================================
|
|
@@ -156,13 +128,13 @@
|
|
|
156
128
|
schema:givenName "Lukas"^^xsd:string ;
|
|
157
129
|
schema:email "lukas.rosenthaler@unibas.ch"^^xsd:string ;
|
|
158
130
|
:credentials "$2b$12$jWCJZ.qdXE9MSCPdUc0y4.9swWYJcgLZn0ePtRTu/7U8qH/OXXkB2"^^xsd:string ;
|
|
159
|
-
:inProject :SystemProject, :
|
|
160
|
-
:
|
|
131
|
+
:inProject :SystemProject, :SharedProject ;
|
|
132
|
+
:hasRole :Unknown ;
|
|
161
133
|
:isActive true .
|
|
162
134
|
|
|
163
135
|
<<<https://orcid.org/0000-0003-1681-4036> :inProject :SystemProject>> :hasAdminPermission :ADMIN_OLDAP .
|
|
164
|
-
<<<https://orcid.org/0000-0003-1681-4036> :inProject :SharedProject>> :hasAdminPermission
|
|
165
|
-
|
|
136
|
+
<<<https://orcid.org/0000-0003-1681-4036> :inProject :SharedProject>> :hasAdminPermission :ADMIN_OLDAP .
|
|
137
|
+
<<<https://orcid.org/0000-0003-1681-4036> :hasRole :Unknown>> :hasDefaultDataPermission :DATA_PERMISSIONS .
|
|
166
138
|
|
|
167
139
|
|
|
168
140
|
<urn:uuid:7e56b6c4-42e5-4a9d-94cf-d6e22577fb4b> a oldap:User ;
|
|
@@ -175,20 +147,9 @@
|
|
|
175
147
|
schema:givenName "John"^^xsd:string ;
|
|
176
148
|
schema:email "john.doe@nowhere.com"^^xsd:string ;
|
|
177
149
|
:credentials "*"^^xsd:string ;
|
|
178
|
-
:
|
|
150
|
+
:hasRole :Unknown ;
|
|
179
151
|
:isActive true .
|
|
180
152
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
184
|
-
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
185
|
-
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
186
|
-
:userId "bugsbunny"^^xsd:NCName ;
|
|
187
|
-
schema:familyName "Bunny"^^xsd:string ;
|
|
188
|
-
schema:givenName "Bugs"^^xsd:string ;
|
|
189
|
-
schema:email "bugs.bunny@warnerbrothers.com"^^xsd:string ;
|
|
190
|
-
:credentials "$2b$12$YK2g0KFvkelCZwCcE38UguIE/3aMPjO4XIX.9FJgYJoz2m.5sDlZK"^^xsd:string ; # "DuffyDuck"
|
|
191
|
-
:inProject :HyperHamlet ;
|
|
192
|
-
:hasPermissions :GenericView ;
|
|
193
|
-
:isActive false .
|
|
153
|
+
<<<urn:uuid:7e56b6c4-42e5-4a9d-94cf-d6e22577fb4b> :hasRole :Unknown>> :hasDefaultDataPermission :DATA_RESTRICTED .
|
|
154
|
+
|
|
194
155
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
2
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
3
|
+
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
4
|
+
|
|
5
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
6
|
+
@prefix o: <http://www.ooo.org/ns#> .
|
|
7
|
+
|
|
8
|
+
@prefix : <https://gaga.com/> .
|
|
9
|
+
|
|
10
|
+
:test {
|
|
11
|
+
:Unknown o:hasName "Unknown" .
|
|
12
|
+
|
|
13
|
+
:UserA o:hasName "UserA" ;
|
|
14
|
+
o:hasRole :Unknown .
|
|
15
|
+
|
|
16
|
+
:InstanceA o:hasName "InstanceA" ;
|
|
17
|
+
o:attachedToRole :Unknown .
|
|
18
|
+
|
|
19
|
+
<<:InstanceA o:attachedToRole :Unknown>> o:hasDataPermission 2 .
|
|
20
|
+
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
|
oldaplib/ontologies/oldap.trig
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
2
|
+
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
1
3
|
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
2
4
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
3
5
|
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
@@ -39,7 +41,7 @@
|
|
|
39
41
|
# This property will be reused wherever we need a namespace IRI
|
|
40
42
|
#
|
|
41
43
|
:namespaceIriShape a sh:PropertyShape ;
|
|
42
|
-
sh:
|
|
44
|
+
sh:path :namespaceIri ;
|
|
43
45
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
44
46
|
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
45
47
|
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
@@ -120,7 +122,7 @@
|
|
|
120
122
|
#
|
|
121
123
|
# SHACL definition of the oldap:AdminPermission class. The AdminPermission instances are attached as
|
|
122
124
|
# RDF*star to the triple that defines to which oldap:project as oldap:User belongs to.
|
|
123
|
-
# E.g. <<<https://orcid.org/0000-0003-1681-4036> :inProject :SystemProject>> :
|
|
125
|
+
# E.g. <<<https://orcid.org/0000-0003-1681-4036> :inProject :SystemProject>> :hasAdminPermission :ADMIN_PROJECT .
|
|
124
126
|
#
|
|
125
127
|
:AdminPermissionShape a sh:NodeShape ;
|
|
126
128
|
sh:targetClass :AdminPermission ;
|
|
@@ -146,10 +148,31 @@
|
|
|
146
148
|
sh:uniqueLang true ;
|
|
147
149
|
] .
|
|
148
150
|
|
|
151
|
+
#
|
|
152
|
+
# Property to assign a admin permission
|
|
153
|
+
# E.g. <<<https://orcid.org/0000-0003-1681-4036> :inProject :SystemProject>> :hasAdminPermission :ADMIN_PROJECT .
|
|
154
|
+
#
|
|
149
155
|
:hasAdminPermissionShape a sh:PropertyShape ;
|
|
150
156
|
sh:path :hasAdminPermission ;
|
|
157
|
+
:statementProperty true ;
|
|
158
|
+
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
159
|
+
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
160
|
+
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
161
|
+
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
151
162
|
sh:class :AdminPermission .
|
|
152
163
|
|
|
164
|
+
:hasDefaultDataPermissionShape a sh:PropertyShape ;
|
|
165
|
+
sh:path :hasDefaultDataPermission ;
|
|
166
|
+
:statementProperty true ;
|
|
167
|
+
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
168
|
+
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
169
|
+
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
170
|
+
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
171
|
+
sh:class :DataPermission .
|
|
172
|
+
|
|
173
|
+
#
|
|
174
|
+
# Data permission shape
|
|
175
|
+
#
|
|
153
176
|
:DataPermissionShape a sh:NodeShape ;
|
|
154
177
|
sh:targetClass :DataPermission ;
|
|
155
178
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
@@ -185,18 +208,48 @@
|
|
|
185
208
|
sh:uniqueLang true ;
|
|
186
209
|
] .
|
|
187
210
|
|
|
211
|
+
# TODO: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
212
|
+
# SHACL to define a permission sets. A permission set assigns data permissions to both
|
|
213
|
+
# a given user and a given data instance.
|
|
214
|
+
# Let's assume a PermissionSet instance :MyPermSet which I will use. Then I can give the following
|
|
215
|
+
# permissions:
|
|
216
|
+
#
|
|
217
|
+
# <<:MyInstance oldap:attachedToRole :MyRole>> oldap:hasDataPermission :DATA_EXTEND .
|
|
218
|
+
#
|
|
219
|
+
# A user with:
|
|
220
|
+
#
|
|
221
|
+
# :ThisUser oldap:hasRole :MyRole, MyRole2 .
|
|
222
|
+
#
|
|
223
|
+
# we may add default values that are proposed as standard values for creating instances:
|
|
224
|
+
#
|
|
225
|
+
# <<:ThisUser oldap:hasRole :MyRole>> oldap:hasDefaultDataPermission :DATA_EXTEND
|
|
226
|
+
# <<:ThisUser oldap:hasRole :MyRole2>> oldap:hasDefaultDataPermission :DATA_RESTRICTED
|
|
227
|
+
#
|
|
228
|
+
# Thus, the user should have maximal :DATA_VIEW access to the given instance
|
|
188
229
|
#
|
|
189
|
-
#
|
|
190
|
-
#
|
|
230
|
+
# PREFIX : <https://gaga.com/>
|
|
231
|
+
# PREFIX o: <http://www.ooo.org/ns#>
|
|
191
232
|
#
|
|
192
|
-
|
|
193
|
-
|
|
233
|
+
# SELECT ?predicate ?value ?permval
|
|
234
|
+
# WHERE {
|
|
235
|
+
# GRAPH :test {
|
|
236
|
+
# :InstanceA ?predicate ?value ;
|
|
237
|
+
# o:attachedToRole ?role .
|
|
238
|
+
# :UserA o:hasRole ?role .
|
|
239
|
+
# <<:InstanceA o:attachedToRole ?role>> o:dataPermission ?permval .
|
|
240
|
+
# }
|
|
241
|
+
# FILTER(?permval >= 1)
|
|
242
|
+
# }
|
|
243
|
+
#
|
|
244
|
+
|
|
245
|
+
:RoleShape a sh:NodeShape ;
|
|
246
|
+
sh:targetClass :Role ;
|
|
194
247
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
195
248
|
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
196
249
|
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
197
250
|
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
198
|
-
rdfs:label "Permission
|
|
199
|
-
rdfs:comment "
|
|
251
|
+
rdfs:label "Permission role"@en, "Berechtigungsrolle"@de, "Rôle d'autorisation"@fr, "Ruolo di autorizzazione"@it ;
|
|
252
|
+
rdfs:comment "Defines a role regarding data permissions, e.g. Editor, Unknown, Contributor etc."@en ;
|
|
200
253
|
sh:property [
|
|
201
254
|
sh:path rdf:type ;
|
|
202
255
|
] ;
|
|
@@ -224,25 +277,6 @@
|
|
|
224
277
|
sh:maxCount 1 ;
|
|
225
278
|
sh:minCount 1 ;
|
|
226
279
|
] ;
|
|
227
|
-
sh:property [
|
|
228
|
-
sh:path :givesPermission ;
|
|
229
|
-
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
230
|
-
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
231
|
-
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
232
|
-
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
233
|
-
sh:maxCount 1 ;
|
|
234
|
-
sh:minCount 1 ;
|
|
235
|
-
sh:class :DataPermission ;
|
|
236
|
-
sh:in (:DATA_RESTRICTED :DATA_VIEW :DATA_EXTEND :DATA_UPDATE :DATA_DELETE :DATA_PERMISSIONS) ;
|
|
237
|
-
sh:name "Data permission"@en,
|
|
238
|
-
"Data permission"@de,
|
|
239
|
-
"Data permission"@fr,
|
|
240
|
-
"Data permission"@it ;
|
|
241
|
-
sh:description "Permission type to access a resource"@en,
|
|
242
|
-
"Berechtigungstyp für Ressource"@de,
|
|
243
|
-
"Type d'autorisation pour accéder à une ressource"@fr,
|
|
244
|
-
"Tipo di autorizzazione per accedere a una risorsa"@it ;
|
|
245
|
-
] ;
|
|
246
280
|
sh:property [
|
|
247
281
|
sh:path :definedByProject ;
|
|
248
282
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
@@ -253,10 +287,10 @@
|
|
|
253
287
|
sh:maxCount 1 ;
|
|
254
288
|
sh:class :Project;
|
|
255
289
|
sh:name "Defined by"@en, "Definiert durch"@de, "Défini par"@fr, "Definito da"@it ;
|
|
256
|
-
sh:description "Permission
|
|
257
|
-
"Der
|
|
258
|
-
"
|
|
259
|
-
"Il
|
|
290
|
+
sh:description "Permission role is define by project"@en,
|
|
291
|
+
"Der Berechtigungsrolle wird definiert durch das Projekt"@de,
|
|
292
|
+
"Le rôle d'autorisation est défini par projet."@fr,
|
|
293
|
+
"Il ruolo di autorizzazione è definito dal progetto"@it ;
|
|
260
294
|
] ;
|
|
261
295
|
sh:property [
|
|
262
296
|
sh:path rdfs:label ;
|
|
@@ -511,12 +545,12 @@
|
|
|
511
545
|
sh:datatype xsd:boolean ;
|
|
512
546
|
] ;
|
|
513
547
|
sh:property [
|
|
514
|
-
sh:path :
|
|
548
|
+
sh:path :hasRole ;
|
|
515
549
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
516
550
|
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
517
551
|
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
518
552
|
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
519
|
-
sh:class :
|
|
553
|
+
sh:class :Role ;
|
|
520
554
|
] .
|
|
521
555
|
|
|
522
556
|
:inProjectStatementShape a sh:NodeShape ;
|
|
@@ -525,6 +559,12 @@
|
|
|
525
559
|
sh:class :AdminPermission ;
|
|
526
560
|
] .
|
|
527
561
|
|
|
562
|
+
:hasRoleStatementShape a sh:NodeShape ;
|
|
563
|
+
sh:property [
|
|
564
|
+
sh:path :hasDefaultDataPermission ;
|
|
565
|
+
sh:class :DataPermission ;
|
|
566
|
+
] .
|
|
567
|
+
|
|
528
568
|
#
|
|
529
569
|
# Hierarchical lists are implemented using :List's and :ListNodes. We will use some skos vocabulary
|
|
530
570
|
#
|
|
@@ -678,6 +718,24 @@
|
|
|
678
718
|
] ;
|
|
679
719
|
sh:closed true .
|
|
680
720
|
|
|
721
|
+
###########################################################################
|
|
722
|
+
# Statment property (RDF#star) for assigning a data permission to a :Thing
|
|
723
|
+
###########################################################################
|
|
724
|
+
:hasDataPermissionShape a sh:PropertyShape ;
|
|
725
|
+
:statementProperty true ;
|
|
726
|
+
sh:targetClass :hasDataPermission ;
|
|
727
|
+
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
728
|
+
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
729
|
+
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
730
|
+
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
731
|
+
sh:name "has data permission"@en ;
|
|
732
|
+
sh:description "Assigns a data permission"@en ;
|
|
733
|
+
sh:class :DataPermission .
|
|
734
|
+
|
|
735
|
+
|
|
736
|
+
###########################################################################
|
|
737
|
+
# :Thing is a superclass of all instance classes that OLDAP defines
|
|
738
|
+
###########################################################################
|
|
681
739
|
:ThingShape a sh:NodeShape ;
|
|
682
740
|
sh:targetClass :Thing ;
|
|
683
741
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
@@ -728,12 +786,12 @@
|
|
|
728
786
|
sh:datatype xsd:dateTimeStamp ;
|
|
729
787
|
] ;
|
|
730
788
|
sh:property [
|
|
731
|
-
sh:path :
|
|
789
|
+
sh:path :attachedToRole ;
|
|
732
790
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
733
791
|
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
734
792
|
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
735
793
|
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
736
|
-
sh:class :
|
|
794
|
+
sh:class :Role ;
|
|
737
795
|
] .
|
|
738
796
|
|
|
739
797
|
}
|
|
@@ -767,8 +825,11 @@
|
|
|
767
825
|
###############################################################################
|
|
768
826
|
# Standard Properties that are used everywhere
|
|
769
827
|
###############################################################################
|
|
770
|
-
:hasAdminPermission a owl:ObjectProperty ;
|
|
771
|
-
rdfs:range :AdminPermission .
|
|
828
|
+
# :hasAdminPermission a owl:ObjectProperty ;
|
|
829
|
+
# rdfs:range :AdminPermission .
|
|
830
|
+
#
|
|
831
|
+
# :hasDefaultDataPermission a owl:Objectproperty ;
|
|
832
|
+
# rdfs:range :DataPermission .
|
|
772
833
|
|
|
773
834
|
:namespaceIri a owl:ObjectProperty ;
|
|
774
835
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
@@ -838,28 +899,20 @@
|
|
|
838
899
|
rdfs:domain :Thing ;
|
|
839
900
|
rdfs:range xsd:dateTimeStamp .
|
|
840
901
|
|
|
841
|
-
:
|
|
902
|
+
:attachedToRole rdf:type owl:ObjectProperty ;
|
|
842
903
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
843
904
|
dcterms:created "2023-11-04T12:00:00Z"^^xsd:dateTime ;
|
|
844
905
|
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
845
906
|
dcterms:modified "2023-11-04T12:00:00Z"^^xsd:dateTime ;
|
|
846
907
|
rdfs:domain :Thing ;
|
|
847
|
-
rdfs:range :
|
|
848
|
-
|
|
849
|
-
:givesPermission rdf:type owl:ObjectProperty ;
|
|
850
|
-
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
851
|
-
dcterms:created "2023-11-04T12:00:00Z"^^xsd:dateTime ;
|
|
852
|
-
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
853
|
-
dcterms:modified "2023-11-04T12:00:00Z"^^xsd:dateTime ;
|
|
854
|
-
rdfs:domain :PermissionSet ;
|
|
855
|
-
rdfs:range :DataPermission .
|
|
908
|
+
rdfs:range :Role .
|
|
856
909
|
|
|
857
910
|
:definedByProject rdf:type owl:ObjectProperty ;
|
|
858
911
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
859
912
|
dcterms:created "2023-11-04T12:00:00Z"^^xsd:dateTime ;
|
|
860
913
|
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
861
914
|
dcterms:modified "2023-11-04T12:00:00Z"^^xsd:dateTime ;
|
|
862
|
-
rdfs:domain :
|
|
915
|
+
rdfs:domain :Role ;
|
|
863
916
|
rdfs:range :Project .
|
|
864
917
|
|
|
865
918
|
|
|
@@ -899,14 +952,30 @@
|
|
|
899
952
|
rdfs:domain :User ;
|
|
900
953
|
rdfs:range xsd:boolean .
|
|
901
954
|
|
|
902
|
-
:
|
|
955
|
+
:hasRole rdf:type owl:ObjectProperty ;
|
|
903
956
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
904
957
|
dcterms:created "2023-11-04T12:00:00Z"^^xsd:dateTime ;
|
|
905
958
|
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
906
959
|
dcterms:modified "2023-11-04T12:00:00Z"^^xsd:dateTime ;
|
|
907
960
|
rdfs:domain :User ;
|
|
908
|
-
rdfs:range :
|
|
961
|
+
rdfs:range :Role .
|
|
962
|
+
|
|
963
|
+
#
|
|
964
|
+
# RDF*Star property to assign an admin permission to a user/project combination
|
|
965
|
+
#
|
|
966
|
+
:hasAdminPermission a rdf:Property, owl:ObjectProperty ; # TODO: May be owl:ObjectProperty interferes and have to be delete
|
|
967
|
+
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
968
|
+
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
969
|
+
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
970
|
+
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
971
|
+
rdfs:range :AdminPermission .
|
|
909
972
|
|
|
973
|
+
:hasDefaultDataPermission a rdf:Property, owl:ObjectProperty ; # TODO: May be owl:ObjectProperty interferes and have to be delete
|
|
974
|
+
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
975
|
+
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
976
|
+
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
977
|
+
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
978
|
+
rdfs:range :DataPermission .
|
|
910
979
|
|
|
911
980
|
###############################################################################
|
|
912
981
|
# Properties used for :Project
|
|
@@ -960,6 +1029,19 @@
|
|
|
960
1029
|
rdfs:domain :OldapListNode ;
|
|
961
1030
|
rdfs:range xsd:positiveInteger .
|
|
962
1031
|
|
|
1032
|
+
###############################################################################
|
|
1033
|
+
# Properties used for assigning data permission to an instance (RDF*star)
|
|
1034
|
+
###############################################################################
|
|
1035
|
+
|
|
1036
|
+
#
|
|
1037
|
+
# Example: <<:MyInstance :attachedToRole>> :hasDataPermission :DATA_RESTRICTED .
|
|
1038
|
+
#
|
|
1039
|
+
:hasDataPermission rdf:type rdf:Property, owl:ObjectProperty ;
|
|
1040
|
+
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
1041
|
+
dcterms:created "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
1042
|
+
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
1043
|
+
dcterms:modified "2023-11-04T12:00:00+00:00"^^xsd:dateTime ;
|
|
1044
|
+
rdfs:range :DataPermission .
|
|
963
1045
|
|
|
964
1046
|
|
|
965
1047
|
#################################################################
|
|
@@ -1063,10 +1145,10 @@
|
|
|
1063
1145
|
|
|
1064
1146
|
|
|
1065
1147
|
#################################################################
|
|
1066
|
-
#
|
|
1148
|
+
# Role class (Holding class of resource permissions)
|
|
1067
1149
|
#################################################################
|
|
1068
1150
|
|
|
1069
|
-
:
|
|
1151
|
+
:Role a owl:class ;
|
|
1070
1152
|
dcterms:creator <https://orcid.org/0000-0003-1681-4036> ;
|
|
1071
1153
|
dcterms:created "2023-11-04T12:00:00Z"^^xsd:dateTime ;
|
|
1072
1154
|
dcterms:contributor <https://orcid.org/0000-0003-1681-4036> ;
|
|
@@ -1096,12 +1178,6 @@
|
|
|
1096
1178
|
owl:onDataRange xsd:dateTime ;
|
|
1097
1179
|
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
|
|
1098
1180
|
],
|
|
1099
|
-
[
|
|
1100
|
-
rdf:type owl:Restriction ;
|
|
1101
|
-
owl:onProperty :givesPermission ;
|
|
1102
|
-
owl:onClass :DataPermission ;
|
|
1103
|
-
owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ;
|
|
1104
|
-
],
|
|
1105
1181
|
[
|
|
1106
1182
|
rdf:type owl:Restriction ;
|
|
1107
1183
|
owl:onProperty :definedByProject ;
|
|
@@ -1269,9 +1345,9 @@
|
|
|
1269
1345
|
] ,
|
|
1270
1346
|
[
|
|
1271
1347
|
rdf:type owl:Restriction ;
|
|
1272
|
-
owl:onProperty :
|
|
1348
|
+
owl:onProperty :hasRole ;
|
|
1273
1349
|
owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ;
|
|
1274
|
-
owl:onClass :
|
|
1350
|
+
owl:onClass :Role
|
|
1275
1351
|
] .
|
|
1276
1352
|
|
|
1277
1353
|
|
|
@@ -1427,9 +1503,9 @@
|
|
|
1427
1503
|
] ,
|
|
1428
1504
|
[
|
|
1429
1505
|
rdf:type owl:Restriction ;
|
|
1430
|
-
owl:onProperty :
|
|
1506
|
+
owl:onProperty :attachedToRole ;
|
|
1431
1507
|
owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ;
|
|
1432
|
-
owl:onClass :
|
|
1508
|
+
owl:onClass :Rolse
|
|
1433
1509
|
] ;
|
|
1434
1510
|
rdfs:comment "General super class of all things (resources) in tghe OMAS universe"@en .
|
|
1435
1511
|
|