Skip to content

Commit 1cd98e6

Browse files
authored
refactor(groups): refactor groups route using value objects (DEV-66) (#1913)
* refactor: add comments + move projects file in right place * feat: add groups payloads and value objects * update responder, messages, sparql and tests * fix: sparql, responder + tests * refactor: move valueObjects to proper package * refactor: reduce valuObject package usage * refactor: fix description name * fixes * test: update test data + docs * cleanup * build fix
1 parent 8875ffe commit 1cd98e6

31 files changed

Lines changed: 381 additions & 257 deletions

File tree

‎docs/03-apis/api-admin/groups.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ Example Group Information stored in admin named graph: :
117117
<http://rdfh.ch/groups/[shortcode]/[UUID]>
118118
rdf:type knora-admin:UserGroup ;
119119
knora-admin:groupName "Name of the group" ;
120-
knora-admin:groupDescription "A description of the group" ;
120+
knora-admin:groupDescriptions "A description of the group" ;
121121
knora-admin:belongsToProject <http://rdfh.ch/projects/[UUID]> ;
122122
knora-admin:status "true"^^xsd:boolean ;
123123
knora-admin:hasSelfJoinEnabled "false"^^xsd:boolean .

‎knora-ontologies/knora-admin.ttl‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,9 @@
165165

166166

167167

168-
### http://www.knora.org/ontology/knora-admin#groupDescription
168+
### http://www.knora.org/ontology/knora-admin#groupDescriptions
169169

170-
:groupDescription rdf:type owl:DatatypeProperty ;
170+
:groupDescriptions rdf:type owl:DatatypeProperty ;
171171

172172
rdfs:subPropertyOf knora-base:objectCannotBeMarkedAsDeleted ;
173173

@@ -568,7 +568,7 @@
568568
owl:cardinality "1"^^xsd:nonNegativeInteger
569569
] ,
570570
[ rdf:type owl:Restriction ;
571-
owl:onProperty :groupDescription ;
571+
owl:onProperty :groupDescriptions ;
572572
owl:maxCardinality "1"^^xsd:nonNegativeInteger
573573
] ,
574574
[ rdf:type owl:Restriction ;

‎test_data/all_data/admin-data.ttl‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@
204204

205205
knora-admin:groupName "Image reviewer"^^xsd:string ;
206206

207-
knora-admin:groupDescription "A group for image reviewers."^^xsd:string ;
207+
knora-admin:groupDescriptions "A group for image reviewers."^^xsd:string ;
208208

209209
knora-admin:belongsToProject <http://rdfh.ch/projects/00FF> ;
210210

@@ -433,7 +433,7 @@ Die Internetpublikation macht das digitalisierte Korpus dieser Frühdrucke durc
433433

434434
<http://rdfh.ch/groups/0001/thing-searcher> rdf:type knora-admin:UserGroup ;
435435
knora-admin:groupName "Thing searcher"^^xsd:string ;
436-
knora-admin:groupDescription "A group for thing searchers."^^xsd:string ;
436+
knora-admin:groupDescriptions "A group for thing searchers."^^xsd:string ;
437437
knora-admin:belongsToProject <http://rdfh.ch/projects/0001> ;
438438
knora-admin:status "true"^^xsd:boolean ;
439439
knora-admin:hasSelfJoinEnabled "true"^^xsd:boolean .

‎test_data/other.v1.DrawingsGodsV1Spec/drawings-gods_admin-data.ttl‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,28 @@
2020

2121
<http://rdfh.ch/groups/0105/drawings-gods-meta-annotators> rdf:type knora-admin:UserGroup ;
2222
knora-admin:groupName "Meta-annotators"^^xsd:string ;
23-
knora-admin:groupDescription "A group of users allowed to annotate data. Does not upload images nor files. Does not access to personal data."^^xsd:string ;
23+
knora-admin:groupDescriptions "A group of users allowed to annotate data. Does not upload images nor files. Does not access to personal data."^^xsd:string ;
2424
knora-admin:belongsToProject <http://rdfh.ch/projects/0105> ;
2525
knora-admin:status "true"^^xsd:boolean ;
2626
knora-admin:hasSelfJoinEnabled "false"^^xsd:boolean .
2727

2828
<http://rdfh.ch/groups/0105/drawings-gods-add-drawings> rdf:type knora-admin:UserGroup ;
2929
knora-admin:groupName "Drawings contributors"^^xsd:string ;
30-
knora-admin:groupDescription "A group of users allowed to upload images, files and annotate data. Does not access to personal data."^^xsd:string ;
30+
knora-admin:groupDescriptions "A group of users allowed to upload images, files and annotate data. Does not access to personal data."^^xsd:string ;
3131
knora-admin:belongsToProject <http://rdfh.ch/projects/0105> ;
3232
knora-admin:status "true"^^xsd:boolean ;
3333
knora-admin:hasSelfJoinEnabled "false"^^xsd:boolean .
3434

3535
<http://rdfh.ch/groups/0105/drawings-gods-snf-team> rdf:type knora-admin:UserGroup ;
3636
knora-admin:groupName "SNF team"^^xsd:string ;
37-
knora-admin:groupDescription "A core group of members from the SNF project. Access to any data, including sensitive."^^xsd:string ;
37+
knora-admin:groupDescriptions "A core group of members from the SNF project. Access to any data, including sensitive."^^xsd:string ;
3838
knora-admin:belongsToProject <http://rdfh.ch/projects/0105> ;
3939
knora-admin:status "true"^^xsd:boolean ;
4040
knora-admin:hasSelfJoinEnabled "false"^^xsd:boolean .
4141

4242
<http://rdfh.ch/groups/0105/drawings-gods-admin> rdf:type knora-admin:UserGroup ;
4343
knora-admin:groupName "Administrators"^^xsd:string ;
44-
knora-admin:groupDescription "A custom admin group created to apply permission precedence rules. Replaces the built-in knora-admin:ProjectAdmin group, not used for this project."^^xsd:string ;
44+
knora-admin:groupDescriptions "A custom admin group created to apply permission precedence rules. Replaces the built-in knora-admin:ProjectAdmin group, not used for this project."^^xsd:string ;
4545
knora-admin:belongsToProject <http://rdfh.ch/projects/0105> ;
4646
knora-admin:status "true"^^xsd:boolean ;
4747
knora-admin:hasSelfJoinEnabled "false"^^xsd:boolean .

‎test_data/other.v2.LumieresLausanneV2E2ESpec/lumieres-lausanne_admin.ttl‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,42 +25,42 @@
2525

2626
<http://rdfh.ch/groups/0113/lumieres-lausanne-user> rdf:type knora-admin:UserGroup ;
2727
knora-admin:groupName "Utilisateur"^^xsd:string ;
28-
knora-admin:groupDescription """Statut permanent. Attribué à toute personne désireuse de s'enregistrer. N'est membre d'aucun autre groupe (étudiant, chercheur). Par rapport au visiteur anonyme sans login, accès supplémentaire à la gestion des collections, aux transcriptions/documents joints/projets slmt si autorisation."""^^xsd:string ;
28+
knora-admin:groupDescriptions """Statut permanent. Attribué à toute personne désireuse de s'enregistrer. N'est membre d'aucun autre groupe (étudiant, chercheur). Par rapport au visiteur anonyme sans login, accès supplémentaire à la gestion des collections, aux transcriptions/documents joints/projets slmt si autorisation."""^^xsd:string ;
2929
knora-admin:belongsToProject <http://rdfh.ch/projects/0113> ;
3030
knora-admin:status "true"^^xsd:boolean ;
3131
knora-admin:hasSelfJoinEnabled "false"^^xsd:boolean .
3232

3333
<http://rdfh.ch/groups/0113/lumieres-lausanne-student> rdf:type knora-admin:UserGroup ;
3434
knora-admin:groupName "Etudiant"^^xsd:string ;
35-
knora-admin:groupDescription """Statut temporaire. Uniquement les étudiants UNIL liés à un séminaire donné dans le cadre du projet Lumières.Lausanne. Ont reçu les consignes ainsi qu'une initiation (obligatoire). A la fin du séminaire, leur statut est changé en statut "Utilisateur", sauf demande particulière."""^^xsd:string ;
35+
knora-admin:groupDescriptions """Statut temporaire. Uniquement les étudiants UNIL liés à un séminaire donné dans le cadre du projet Lumières.Lausanne. Ont reçu les consignes ainsi qu'une initiation (obligatoire). A la fin du séminaire, leur statut est changé en statut "Utilisateur", sauf demande particulière."""^^xsd:string ;
3636
knora-admin:belongsToProject <http://rdfh.ch/projects/0113> ;
3737
knora-admin:status "true"^^xsd:boolean ;
3838
knora-admin:hasSelfJoinEnabled "false"^^xsd:boolean .
3939

4040
<http://rdfh.ch/groups/0113/lumieres-lausanne-researcher> rdf:type knora-admin:UserGroup ;
4141
knora-admin:groupName "Chercheur"^^xsd:string ;
42-
knora-admin:groupDescription "Statut permanent. Doctorants, professeurs, autres chercheurs qui ont reçu préalablement l'autorisation d'un directeur. Ont reçu les consignes (obligatoire), et si possible une initiation."^^xsd:string ;
42+
knora-admin:groupDescriptions "Statut permanent. Doctorants, professeurs, autres chercheurs qui ont reçu préalablement l'autorisation d'un directeur. Ont reçu les consignes (obligatoire), et si possible une initiation."^^xsd:string ;
4343
knora-admin:belongsToProject <http://rdfh.ch/projects/0113> ;
4444
knora-admin:status "true"^^xsd:boolean ;
4545
knora-admin:hasSelfJoinEnabled "false"^^xsd:boolean .
4646

4747
<http://rdfh.ch/groups/0113/lumieres-lausanne-phdstudent> rdf:type knora-admin:UserGroup ;
4848
knora-admin:groupName "Doctorant"^^xsd:string ;
49-
knora-admin:groupDescription "Statut temporaire. Doctorants et étudiants-assistants directement liés au Projet Lumières.Lausanne. Ont reçu les consignes ainsi qu'une initiation (obligatoire). Une fois leur mandat terminé, passent en statut Chercheur."^^xsd:string ;
49+
knora-admin:groupDescriptions "Statut temporaire. Doctorants et étudiants-assistants directement liés au Projet Lumières.Lausanne. Ont reçu les consignes ainsi qu'une initiation (obligatoire). Une fois leur mandat terminé, passent en statut Chercheur."^^xsd:string ;
5050
knora-admin:belongsToProject <http://rdfh.ch/projects/0113> ;
5151
knora-admin:status "true"^^xsd:boolean ;
5252
knora-admin:hasSelfJoinEnabled "false"^^xsd:boolean .
5353

5454
<http://rdfh.ch/groups/0113/lumieres-lausanne-director> rdf:type knora-admin:UserGroup ;
5555
knora-admin:groupName "Directeur"^^xsd:string ;
56-
knora-admin:groupDescription "Béla Kapossy, Béatrice Lovis."^^xsd:string ;
56+
knora-admin:groupDescriptions "Béla Kapossy, Béatrice Lovis."^^xsd:string ;
5757
knora-admin:belongsToProject <http://rdfh.ch/projects/0113> ;
5858
knora-admin:status "true"^^xsd:boolean ;
5959
knora-admin:hasSelfJoinEnabled "false"^^xsd:boolean .
6060

6161
<http://rdfh.ch/groups/0113/lumieres-lausanne-administrator> rdf:type knora-admin:UserGroup ;
6262
knora-admin:groupName "Administrateur"^^xsd:string ;
63-
knora-admin:groupDescription "Béatrice Lovis."^^xsd:string ;
63+
knora-admin:groupDescriptions "Béatrice Lovis."^^xsd:string ;
6464
knora-admin:belongsToProject <http://rdfh.ch/projects/0113> ;
6565
knora-admin:status "true"^^xsd:boolean ;
6666
knora-admin:hasSelfJoinEnabled "false"^^xsd:boolean .

‎webapi/src/main/scala/org/knora/webapi/messages/OntologyConstants.scala‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ object OntologyConstants {
490490
/* Group */
491491
val UserGroup: IRI = KnoraAdminPrefixExpansion + "UserGroup"
492492
val GroupName: IRI = KnoraAdminPrefixExpansion + "groupName"
493-
val GroupDescription: IRI = KnoraAdminPrefixExpansion + "groupDescription"
493+
val GroupDescriptions: IRI = KnoraAdminPrefixExpansion + "groupDescriptions"
494494
val BelongsToProject: IRI = KnoraAdminPrefixExpansion + "belongsToProject"
495495

496496
/* Built-In Groups */

‎webapi/src/main/scala/org/knora/webapi/messages/StringFormatter.scala‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1673,7 +1673,7 @@ class StringFormatter private (
16731673
* IRI.
16741674
* @return the same optional string.
16751675
*/
1676-
def toOptionalIri(maybeString: Option[String], errorFun: => Nothing): Option[IRI] =
1676+
def validateAndEscapeOptionalIri(maybeString: Option[String], errorFun: => Nothing): Option[IRI] =
16771677
maybeString match {
16781678
case Some(s) => Some(validateAndEscapeIri(s, errorFun))
16791679
case None => None

0 commit comments

Comments
 (0)