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.
- {oldaplib-0.4.0 → oldaplib-0.4.1}/PKG-INFO +1 -1
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/datapermissions.py +4 -1
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/objectfactory.py +1 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/user.py +27 -20
- oldaplib-0.4.1/oldaplib/src/version.py +1 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_user.py +1 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/pyproject.toml +1 -1
- oldaplib-0.4.0/oldaplib/src/version.py +0 -1
- {oldaplib-0.4.0 → oldaplib-0.4.1}/README.md +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/__init__.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/admin-testing.trig +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/admin.trig +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/example.trig +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/gaga.trigs +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/oldap.trig +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/oldap.ttl +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/shared.trig +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/ontologies/standard/.gitsave +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/__init__.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/cachesingleton.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/connection.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/datamodel.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/dtypes/__init__.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/dtypes/bnode.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/dtypes/languagein.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/dtypes/namespaceiri.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/dtypes/rdfset.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/dtypes/xsdset.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/__init__.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/action.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/adminpermissions.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/attributeclass.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/externalontologyattr.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/haspropertyattr.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/language.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/oldaplistattr.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/oldaplistnodeattr.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/owlpropertytype.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/projectattr.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/propertyclassattr.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/resourceclassattr.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/roleattr.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/sparql_result_format.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/userattr.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/enums/xsd_datatypes.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/externalontology.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/globalconfig.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/hasproperty.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/Notify.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/__init__.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/attributechange.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/context.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/convert2datatype.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/irincname.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/json_encoder.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/langstring.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/numeric.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/observable_dict.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/observable_set.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/oldaperror.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/query_processor.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/semantic_version.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/serializeableset.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/serializer.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/singletonmeta.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/helpers/tools.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/iconnection.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/in_project.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/model.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/oldaplist.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/oldaplist_helpers.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/oldaplistnode.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/oldaplogging.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/project.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/propertyclass.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/resourceclass.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/role.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/userdataclass.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/__init__.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/floatingpoint.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/iri.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_anyuri.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_base64binary.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_boolean.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_byte.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_date.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_datetime.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_datetimestamp.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_decimal.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_double.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_duration.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_float.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_gday.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_gmonth.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_gmonthday.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_gyear.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_gyearmonth.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_hexbinary.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_id.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_idref.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_int.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_integer.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_language.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_long.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_name.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_ncname.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_negativeinteger.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_nmtoken.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_nonnegativeinteger.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_nonpositiveinteger.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_normalizedstring.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_positiveinteger.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_qname.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_short.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_string.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_time.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_token.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_unsignedbyte.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_unsignedint.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_unsignedlong.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/src/xsd/xsd_unsignedshort.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/XXX_test_fasnacht.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/__init__.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_cache.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_connection.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_context.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_datamodel.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_dtypes.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_externalontologies.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_hasproperty.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_in_project.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_langstring.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_language_in.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_objectfactory.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_observable_dict.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_observable_set.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_oldaplist.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_oldaplist_helpers.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_oldaplistnode.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_project.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_propertyclass.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_resourceclass.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_role.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_semantic_version.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/test/test_xsd_datatypes.py +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/Gender.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/collections_type.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/connection_test.trig +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/datamodel_test.trig +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/event_type.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/hlist_schema.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/instances_test.trig +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/institution_or_building_type.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/language.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/location_type.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/means_of_transportation.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/objectfactory_test.trig +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/playground_list.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/role.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/source_type-1.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/source_type.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/test_move_left_of_toL.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testdata/testlist.yaml +0 -0
- {oldaplib-0.4.0 → oldaplib-0.4.1}/oldaplib/testit.http +0 -0
|
@@ -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 =
|
|
896
|
-
|
|
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 +
|
|
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}}
|
|
913
|
-
|
|
914
|
-
|
|
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 +
|
|
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}}
|
|
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.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|