def put_meta(request):
    """MNStorage.updateSystemMetadata(session, pid, sysmeta) → boolean.

    TODO: Currently, this call allows making breaking changes to SysMeta. We need to
    clarify what can be modified and what the behavior should be when working with SIDs
    and chains.

    """
    if django.conf.settings.REQUIRE_WHITELIST_FOR_UPDATE:
        d1_gmn.app.auth.assert_create_update_delete_permission(request)
    d1_gmn.app.util.coerce_put_post(request)
    d1_gmn.app.views.assert_db.post_has_mime_parts(
        request, (('field', 'pid'), ('file', 'sysmeta'))
    )
    pid = request.POST['pid']
    d1_gmn.app.auth.assert_allowed(request, d1_gmn.app.auth.WRITE_LEVEL, pid)
    new_sysmeta_pyxb = d1_gmn.app.sysmeta.deserialize(request.FILES['sysmeta'])
    d1_gmn.app.views.assert_sysmeta.has_matching_modified_timestamp(new_sysmeta_pyxb)
    d1_gmn.app.views.create.set_mn_controlled_values(
        request, new_sysmeta_pyxb, is_modification=True
    )
    d1_gmn.app.sysmeta.create_or_update(new_sysmeta_pyxb)
    d1_gmn.app.event_log.log_update_event(
        pid,
        request,
        timestamp=d1_common.date_time.normalize_datetime_to_utc(
            new_sysmeta_pyxb.dateUploaded
        ),
    )
    return d1_gmn.app.views.util.http_response_with_boolean_true_type()
def put_meta ( request ) : if django . conf . settings . REQUIRE_WHITELIST_FOR_UPDATE : d1_gmn . app . auth . assert_create_update_delete_permission ( request ) d1_gmn . app . util . coerce_put_post ( request ) d1_gmn . app . views . assert_db . post_has_mime_parts ( request , ( ( 'field' , 'pid' ) , ( 'file' , 'sysmeta' ) ) ) pid = request . POST [ 'pid' ] d1_gmn . app . auth . assert_allowed ( request , d1_gmn . app . auth . WRITE_LEVEL , pid ) new_sysmeta_pyxb = d1_gmn . app . sysmeta . deserialize ( request . FILES [ 'sysmeta' ] ) d1_gmn . app . views . assert_sysmeta . has_matching_modified_timestamp ( new_sysmeta_pyxb ) d1_gmn . app . views . create . set_mn_controlled_values ( request , new_sysmeta_pyxb , is_modification = True ) d1_gmn . app . sysmeta . create_or_update ( new_sysmeta_pyxb ) d1_gmn . app . event_log . log_update_event ( pid , request , timestamp = d1_common . date_time . normalize_datetime_to_utc ( new_sysmeta_pyxb . dateUploaded ) , ) return d1_gmn . app . views . util . http_response_with_boolean_true_type ( )
MNStorage.updateSystemMetadata(session, pid, sysmeta) → boolean.

    TODO: Currently, this call allows making breaking changes to SysMeta. We need to
    clarify what can be modified and what the behavior should be when working with SIDs
    and chains.