oldaplib 0.4.0__tar.gz → 0.4.1__tar.gz

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.
Files changed (165) hide show
  1. {oldaplib-0.4.0 → oldaplib-0.4.1}/PKG-INFO +1 -1
  2. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/datapermissions.py +4 -1
  3. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/objectfactory.py +1 -0
  4. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/user.py +27 -20
  5. oldaplib-0.4.1/oldaplib/src/version.py +1 -0
  6. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_user.py +1 -0
  7. {oldaplib-0.4.0 → oldaplib-0.4.1}/pyproject.toml +1 -1
  8. oldaplib-0.4.0/oldaplib/src/version.py +0 -1
  9. {oldaplib-0.4.0 → oldaplib-0.4.1}/README.md +0 -0
  10. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/__init__.py +0 -0
  11. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/admin-testing.trig +0 -0
  12. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/admin.trig +0 -0
  13. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/example.trig +0 -0
  14. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/gaga.trigs +0 -0
  15. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/oldap.trig +0 -0
  16. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/oldap.ttl +0 -0
  17. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/shared.trig +0 -0
  18. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/standard/.gitsave +0 -0
  19. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/__init__.py +0 -0
  20. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/cachesingleton.py +0 -0
  21. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/connection.py +0 -0
  22. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/datamodel.py +0 -0
  23. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/dtypes/__init__.py +0 -0
  24. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/dtypes/bnode.py +0 -0
  25. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/dtypes/languagein.py +0 -0
  26. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/dtypes/namespaceiri.py +0 -0
  27. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/dtypes/rdfset.py +0 -0
  28. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/dtypes/xsdset.py +0 -0
  29. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/__init__.py +0 -0
  30. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/action.py +0 -0
  31. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/adminpermissions.py +0 -0
  32. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/attributeclass.py +0 -0
  33. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/externalontologyattr.py +0 -0
  34. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/haspropertyattr.py +0 -0
  35. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/language.py +0 -0
  36. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/oldaplistattr.py +0 -0
  37. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/oldaplistnodeattr.py +0 -0
  38. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/owlpropertytype.py +0 -0
  39. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/projectattr.py +0 -0
  40. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/propertyclassattr.py +0 -0
  41. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/resourceclassattr.py +0 -0
  42. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/roleattr.py +0 -0
  43. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/sparql_result_format.py +0 -0
  44. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/userattr.py +0 -0
  45. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/xsd_datatypes.py +0 -0
  46. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/externalontology.py +0 -0
  47. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/globalconfig.py +0 -0
  48. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/hasproperty.py +0 -0
  49. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/Notify.py +0 -0
  50. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/__init__.py +0 -0
  51. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/attributechange.py +0 -0
  52. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/context.py +0 -0
  53. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/convert2datatype.py +0 -0
  54. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/irincname.py +0 -0
  55. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/json_encoder.py +0 -0
  56. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/langstring.py +0 -0
  57. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/numeric.py +0 -0
  58. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/observable_dict.py +0 -0
  59. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/observable_set.py +0 -0
  60. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/oldaperror.py +0 -0
  61. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/query_processor.py +0 -0
  62. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/semantic_version.py +0 -0
  63. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/serializeableset.py +0 -0
  64. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/serializer.py +0 -0
  65. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/singletonmeta.py +0 -0
  66. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/tools.py +0 -0
  67. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/iconnection.py +0 -0
  68. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/in_project.py +0 -0
  69. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/model.py +0 -0
  70. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/oldaplist.py +0 -0
  71. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/oldaplist_helpers.py +0 -0
  72. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/oldaplistnode.py +0 -0
  73. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/oldaplogging.py +0 -0
  74. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/project.py +0 -0
  75. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/propertyclass.py +0 -0
  76. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/resourceclass.py +0 -0
  77. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/role.py +0 -0
  78. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/userdataclass.py +0 -0
  79. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/__init__.py +0 -0
  80. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/floatingpoint.py +0 -0
  81. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/iri.py +0 -0
  82. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd.py +0 -0
  83. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_anyuri.py +0 -0
  84. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_base64binary.py +0 -0
  85. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_boolean.py +0 -0
  86. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_byte.py +0 -0
  87. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_date.py +0 -0
  88. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_datetime.py +0 -0
  89. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_datetimestamp.py +0 -0
  90. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_decimal.py +0 -0
  91. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_double.py +0 -0
  92. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_duration.py +0 -0
  93. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_float.py +0 -0
  94. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_gday.py +0 -0
  95. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_gmonth.py +0 -0
  96. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_gmonthday.py +0 -0
  97. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_gyear.py +0 -0
  98. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_gyearmonth.py +0 -0
  99. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_hexbinary.py +0 -0
  100. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_id.py +0 -0
  101. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_idref.py +0 -0
  102. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_int.py +0 -0
  103. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_integer.py +0 -0
  104. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_language.py +0 -0
  105. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_long.py +0 -0
  106. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_name.py +0 -0
  107. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_ncname.py +0 -0
  108. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_negativeinteger.py +0 -0
  109. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_nmtoken.py +0 -0
  110. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_nonnegativeinteger.py +0 -0
  111. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_nonpositiveinteger.py +0 -0
  112. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_normalizedstring.py +0 -0
  113. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_positiveinteger.py +0 -0
  114. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_qname.py +0 -0
  115. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_short.py +0 -0
  116. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_string.py +0 -0
  117. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_time.py +0 -0
  118. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_token.py +0 -0
  119. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_unsignedbyte.py +0 -0
  120. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_unsignedint.py +0 -0
  121. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_unsignedlong.py +0 -0
  122. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_unsignedshort.py +0 -0
  123. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/XXX_test_fasnacht.py +0 -0
  124. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/__init__.py +0 -0
  125. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_cache.py +0 -0
  126. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_connection.py +0 -0
  127. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_context.py +0 -0
  128. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_datamodel.py +0 -0
  129. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_dtypes.py +0 -0
  130. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_externalontologies.py +0 -0
  131. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_hasproperty.py +0 -0
  132. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_in_project.py +0 -0
  133. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_langstring.py +0 -0
  134. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_language_in.py +0 -0
  135. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_objectfactory.py +0 -0
  136. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_observable_dict.py +0 -0
  137. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_observable_set.py +0 -0
  138. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_oldaplist.py +0 -0
  139. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_oldaplist_helpers.py +0 -0
  140. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_oldaplistnode.py +0 -0
  141. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_project.py +0 -0
  142. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_propertyclass.py +0 -0
  143. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_resourceclass.py +0 -0
  144. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_role.py +0 -0
  145. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_semantic_version.py +0 -0
  146. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_xsd_datatypes.py +0 -0
  147. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/Gender.yaml +0 -0
  148. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/collections_type.yaml +0 -0
  149. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/connection_test.trig +0 -0
  150. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/datamodel_test.trig +0 -0
  151. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/event_type.yaml +0 -0
  152. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/hlist_schema.yaml +0 -0
  153. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/instances_test.trig +0 -0
  154. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/institution_or_building_type.yaml +0 -0
  155. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/language.yaml +0 -0
  156. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/location_type.yaml +0 -0
  157. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/means_of_transportation.yaml +0 -0
  158. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/objectfactory_test.trig +0 -0
  159. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/playground_list.yaml +0 -0
  160. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/role.yaml +0 -0
  161. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/source_type-1.yaml +0 -0
  162. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/source_type.yaml +0 -0
  163. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/test_move_left_of_toL.yaml +0 -0
  164. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/testlist.yaml +0 -0
  165. {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testit.http +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: oldaplib
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: Open Media Access Server Library (Linked Open Data middleware/RESTApi)
5
5
  License: GNU Affero General Public License version 3
6
6
  Author: Lukas Rosenthaler
@@ -80,11 +80,14 @@ class DataPermission(PermissionWithValue):
80
80
  DATA_DELETE = ('oldap:DATA_DELETE', 5) # Allow to delete complete resource
81
81
  DATA_PERMISSIONS = ('oldap:DATA_PERMISSIONS', 6) # Allow to modify permissions of resource
82
82
 
83
+ def __str__(self) -> str:
84
+ return self.to_string()
85
+
83
86
  @property
84
87
  def toRdf(self):
85
88
  return self.value
86
89
 
87
- def to_string(self):
90
+ def to_string(self) -> str:
88
91
  return self.name.removeprefix("oldap:")
89
92
 
90
93
  @classmethod
@@ -127,6 +127,7 @@ class ResourceInstance:
127
127
  # we have an attachedToRole property given in the constructor...
128
128
  #
129
129
  value = kwargs[str(prop_iri)] if kwargs.get(str(prop_iri)) else kwargs[prop_iri.fragment]
130
+ value = {Xsd_QName(role): dperm if isinstance(dperm, DataPermission) else DataPermission.from_string(dperm) for role, dperm in value.items()}
130
131
  if not isinstance(value, dict):
131
132
  raise OldapErrorValue(f'{self.name}: Property {prop_iri} with attachedToRole must be a dict')
132
133
  self._attached_roles = ObservableDict(value, on_change=self.__attachedToRole_cb)
@@ -892,49 +892,55 @@ class User(Model):
892
892
  # oldap:hasDefaultDataPermission has changed!
893
893
  #
894
894
  rdfstar = False
895
- sparql = f'{blank:{indent * indent_inc}}# RDF*Star <<.. oldap:hasRole ...>> oldap:hasDefaultDataPermission ...\n'
896
- sparql += f'{blank:{indent * indent_inc}}WITH oldap:admin\n'
895
+ sparql = ''
896
+ if removed or changed:
897
+ sparql += f'{blank:{indent * indent_inc}}# RDF*Star DELETE: <<.. oldap:hasRole ...>> oldap:hasDefaultDataPermission ...\n'
898
+ sparql += f'{blank:{indent * indent_inc}}DELETE DATA {{\n'
899
+ sparql += f'{blank:{(indent + 1) * indent_inc}}GRAPH oldap:admin {{\n'
900
+ rdfstar = True
897
901
  if removed:
898
902
  tmp = [role for role, dperm in removed.items() if dperm] # check if we have roles with dterm not None
899
903
  if tmp:
900
- sparql += f'{blank:{indent * indent_inc}}DELETE {{\n'
901
904
  for role, dperm in removed.items():
902
905
  if dperm:
903
- sparql += f'{blank:{(indent + 1) * indent_inc}}<<?user oldap:hasRole {role.toRdf}>> oldap:hasDefaultDataPermission {dperm} .\n'
904
- sparql += f'{blank:{indent * indent_inc}}}}\n'
905
- rdfstar = True
906
+ sparql += f'{blank:{(indent + 2) * indent_inc}}<<{self.userIri.toRdf} oldap:hasRole {role.toRdf}>> oldap:hasDefaultDataPermission {dperm.toRdf} .\n'
906
907
  if changed: # remove RDF*Star triples of the roles that have changed
907
908
  tmp = [role for role, dperm in changed.items() if dperm['old']]
908
909
  if tmp:
909
- sparql += f'{blank:{indent * indent_inc}}DELETE {{\n'
910
910
  for role, changes in changed.items():
911
911
  if changes['old']:
912
- sparql += f'{blank:{(indent + 1) * indent_inc}}<<?user oldap:hasRole {role.toRdf}>> oldap:hasDefaultDataPermission {changes["old"]} .\n'
913
- sparql += f'{blank:{indent * indent_inc}}}}\n'
914
- rdfstar = True
912
+ sparql += f'{blank:{(indent + 1) * indent_inc}}<<{self.userIri.toRdf} oldap:hasRole {role.toRdf}>> oldap:hasDefaultDataPermission {changes["old"].toRdf} .\n'
913
+
914
+ if rdfstar:
915
+ sparql += f'{blank:{(indent + 1) * indent_inc}}}}\n'
916
+ sparql += f'{blank:{indent * indent_inc}}}}\n'
917
+ if added or changed:
918
+ if rdfstar:
919
+ sparql += f'{blank:{indent * indent_inc}};\n'
920
+ sparql += f'{blank:{indent * indent_inc}}# RDF*Star INSERT: <<.. oldap:hasRole ...>> oldap:hasDefaultDataPermission ...\n'
921
+ sparql += f'{blank:{indent * indent_inc}}INSERT DATA {{\n'
922
+ sparql += f'{blank:{(indent + 1) * indent_inc}}GRAPH oldap:admin {{\n'
923
+ rdfstar = True
924
+ else:
925
+ rdfstar = False
915
926
  if added:
916
927
  tmp = [role for role, dperm in added.items() if dperm] # check if we have roles with dterm not None
917
928
  if tmp:
918
- sparql += f'{blank:{indent * indent_inc}}INSERT {{\n'
919
929
  for role, dperm in added.items():
920
930
  if dperm:
921
- sparql += f'{blank:{(indent + 1) * indent_inc}}<<?user oldap:hasRole {role.toRdf}>> oldap:hasDefaultDataPermission {dperm} .\n'
922
- sparql += f'{blank:{indent * indent_inc}}}}\n'
931
+ sparql += f'{blank:{(indent + 2) * indent_inc}}<<{self.userIri.toRdf} oldap:hasRole {role.toRdf}>> oldap:hasDefaultDataPermission {dperm.toRdf} .\n'
923
932
  rdfstar = True
924
933
  if changed: # add the RDF*Star triples of the roles that have changed
925
934
  tmp = [role for role, dperm in changed.items() if dperm['new']]
926
935
  if tmp:
927
- sparql += f'{blank:{indent * indent_inc}}INSERT {{\n'
928
936
  for role, changes in changed.items():
929
937
  if changes['new']:
930
- sparql += f'{blank:{(indent + 1) * indent_inc}}<<?user oldap:hasRole {role.toRdf}>> oldap:hasDefaultDataPermission {changes["new"]} .\n'
931
- sparql += f'{blank:{indent * indent_inc}}}}\n'
938
+ sparql += f'{blank:{(indent + 1) * indent_inc}}<<{self.userIri.toRdf} oldap:hasRole {role.toRdf}>> oldap:hasDefaultDataPermission {changes["new"].toRdf} .\n'
932
939
  rdfstar = True
933
- sparql += f'{blank:{indent * indent_inc}}WHERE {{\n'
934
- sparql += f'{blank:{(indent + 1) * indent_inc}}BIND({self.userIri.toRdf} as ?user)\n'
935
- sparql += f'{blank:{(indent + 1) * indent_inc}}?user a oldap:User .\n'
936
- sparql += f'{blank:{indent * indent_inc}}}}'
937
940
  if rdfstar:
941
+ sparql += f'{blank:{(indent + 1) * indent_inc}}}}\n'
942
+ sparql += f'{blank:{indent * indent_inc}}}}\n'
943
+ if sparql:
938
944
  sparql_list.append(sparql)
939
945
 
940
946
  #
@@ -1115,6 +1121,7 @@ class User(Model):
1115
1121
  self.set_modified_by_iri(Xsd_QName('oldap:admin'), self.userIri, self.modified, timestamp)
1116
1122
  modtime = self.get_modified_by_iri(Xsd_QName('oldap:admin'), self.userIri)
1117
1123
  except OldapError:
1124
+ print(sparql)
1118
1125
  self._con.transaction_abort()
1119
1126
  raise
1120
1127
  if timestamp != modtime:
@@ -0,0 +1 @@
1
+ __version__ = "0.4.1"
@@ -699,6 +699,7 @@ class TestUser(unittest.TestCase):
699
699
  AdminPermission.ADMIN_CREATE}},
700
700
  hasRole={Iri('oldap:Unknown'): DataPermission.DATA_RESTRICTED})
701
701
  user.create()
702
+
702
703
  user2 = User.read(con=self._connection, userId="edison", ignore_cache=True)
703
704
  user2.userId = "aedison"
704
705
  user2.familyName = "Edison et al."
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "oldaplib"
3
- version = "0.4.0"
3
+ version = "0.4.1"
4
4
  description = "Open Media Access Server Library (Linked Open Data middleware/RESTApi)"
5
5
  authors = ["Lukas Rosenthaler <lukas.rosenthaler@unibas.ch>"]
6
6
  license = "GNU Affero General Public License version 3"
@@ -1 +0,0 @@
1
- __version__ = "0.4.0"
File without changes
File without changes
File without changes
File without changes
File without changes