From 3e477a52de43809b5adb72d68fd12503d336763c Mon Sep 17 00:00:00 2001
From: David Siegfried <david.siegfried@uni-vechta.de>
Date: Wed, 21 Dec 2022 11:26:52 +0000
Subject: [PATCH] fix broken usage of sorm, closes #1579

Closes #1579

Merge request studip/studip!1266
---
 lib/models/User.class.php | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/lib/models/User.class.php b/lib/models/User.class.php
index 6bb38f41da3..5cf1e18a421 100644
--- a/lib/models/User.class.php
+++ b/lib/models/User.class.php
@@ -1078,16 +1078,12 @@ class User extends AuthUserMd5 implements Range, PrivacyObject
             $old_user = User::find($old_id);
             $old_user->datafields->each(function ($field) use ($new_id) {
                 if (!$field->isNew() && $field->content !== null) {
-                    $data = $field->toArray('datafield_id sec_range_id content mkdate chdate');
-                    $data['range_id'] = $new_id;
+                    $entry = new DatafieldEntryModel([$field->datafield_id, $new_id, $field->sec_range_id, $field->lang]);
 
-                    $datafield = DatafieldEntryModel::findOneBySQL('datafield_id = ?', [$data['datafield_id']]);
-                    if(!$datafield) {
-                        $datafield = DatafieldEntryModel::build($data);
-                    } else {
-                        $datafield->setData($data);
+                    if ($entry->content === null || $entry->content === '' || $entry->content === 'default_value') {
+                        $entry->content = $field->content;
+                        $entry->store();
                     }
-                    $datafield->store();
                 }
             });
 
-- 
GitLab