Commit 8facc919 authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

do not edit exifs

parent 9f02e381
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -193,6 +193,13 @@ def _rpc_groups(groups: List[str]):
    return decorator


def _prevent_exiftool_metadata_modification(
    metaval: Union[MetadataCollectionValue, MetadataResourceValue],
):
    if metaval.metadata.set.title.lower() in ["exiftool"]:
        raise ServiceException("can't modify exif")


# Define RPC functions here.
# ALL RPC functions receive a User instance as first argument

@@ -1451,6 +1458,7 @@ def remove_meta_value_from_resource(
    UserAccess(user, resource_instance.ptr_project).check_update(resource_instance)
    for meta_value in resource_instance.metadataresourcevalue_set.all():
        if meta_value.id == meta_value_id:
            _prevent_exiftool_metadata_modification(meta_value)
            meta_value.delete()
            return True
    return False
@@ -1610,6 +1618,7 @@ def remove_meta_value_from_collection(
    UserAccess(user, collection_instance.project).check_update(collection_instance)
    for meta_value in collection_instance.metadatacollectionvalue_set.all():
        if meta_value.id == meta_value_id:
            _prevent_exiftool_metadata_modification(meta_value)
            meta_value.delete()
    if recursive:
        for descendant_collection_instance in collection_instance.descendants():
@@ -1684,6 +1693,7 @@ def change_collection_meta_value(
        UserAccess(user, meta_value_instance.metadata.project).check_update(
            meta_value_instance.collection
        )
        _prevent_exiftool_metadata_modification(meta_value_instance)
        meta_value_instance.value = meta_value
        meta_value_instance.save()
        return True
@@ -1701,6 +1711,7 @@ def change_resource_meta_value(user: User, meta_value_id: int, meta_value: str)
        UserAccess(user, meta_value_instance.metadata.project).check_update(
            meta_value_instance.resource
        )
        _prevent_exiftool_metadata_modification(meta_value_instance)
        meta_value_instance.value = meta_value
        meta_value_instance.save()
        return True