From 84a50ecfa58dd4a512a90ed1bbc7d75e83d22bb0 Mon Sep 17 00:00:00 2001
From: Ron Lucke <lucke@elan-ev.de>
Date: Fri, 23 Aug 2024 09:12:01 +0000
Subject: [PATCH] =?UTF-8?q?Zusammenf=C3=BChren=20von=20Accounts=20nimmt=20?=
 =?UTF-8?q?keine=20Courseware-Inhalte=20mit?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Closes #2492

Merge request studip/studip!3311
---
 lib/models/User.php | 86 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)

diff --git a/lib/models/User.php b/lib/models/User.php
index be0db840d99..08605d8db1f 100644
--- a/lib/models/User.php
+++ b/lib/models/User.php
@@ -1333,6 +1333,92 @@ class User extends AuthUserMd5 implements Range, PrivacyObject, Studip\Calendar\
                                                                AND range_type = 'user'";
         DBManager::get()->execute($query, [$new_id, $old_id]);
 
+        // Courseware
+        $query = "UPDATE IGNORE cw_blocks SET owner_id = ? WHERE owner_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_blocks SET editor_id = ? WHERE editor_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_blocks SET edit_blocker_id = ? WHERE edit_blocker_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+
+        $query = "UPDATE IGNORE cw_block_comments SET user_id = ? WHERE user_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_block_feedbacks SET user_id = ? WHERE user_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_bookmarks SET user_id = ? WHERE user_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_certificates SET user_id = ? WHERE user_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_clipboards SET user_id = ? WHERE user_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+
+        $query = "UPDATE IGNORE cw_containers SET owner_id = ? WHERE owner_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_containers SET editor_id = ? WHERE editor_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_containers SET edit_blocker_id = ? WHERE edit_blocker_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+
+        $query = "UPDATE IGNORE cw_public_links SET user_id = ? WHERE user_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+
+        $query = "UPDATE IGNORE cw_structural_elements SET range_id = ? WHERE range_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_structural_elements SET owner_id = ? WHERE owner_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_structural_elements SET editor_id = ? WHERE editor_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_structural_elements SET edit_blocker_id = ? WHERE edit_blocker_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+
+        $query = "UPDATE IGNORE cw_structural_element_comments SET user_id = ? WHERE user_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_structural_element_feedbacks SET user_id = ? WHERE user_id = ?";
+        $statement = DBManager::get()->prepare($query);
+
+        $query = "UPDATE IGNORE cw_tasks SET solver_id = ? WHERE solver_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_task_feedbacks SET lecturer_id = ? WHERE lecturer_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_task_groups SET lecturer_id = ? WHERE lecturer_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+
+        $query = "UPDATE IGNORE cw_units SET range_id = ? WHERE range_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+        $query = "UPDATE IGNORE cw_units SET creator_id = ? WHERE creator_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+
+        $query = "UPDATE IGNORE cw_user_data_fields SET user_id = ? WHERE user_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+
+        $query = "UPDATE IGNORE cw_user_progresses SET user_id = ? WHERE user_id = ?";
+        $statement = DBManager::get()->prepare($query);
+        $statement->execute([$new_id, $old_id]);
+
+
         NotificationCenter::postNotification('UserDidMigrate', $old_id, $new_id);
 
         $messages[] = _('Dateien, Termine, Adressbuch, Nachrichten und weitere Daten wurden migriert.');
-- 
GitLab