From 028366d9e5188eb393b21688cde7d350c2d4cd20 Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Fri, 21 Jan 2022 16:50:24 +0100
Subject: [PATCH] delete course related datafield entries when the user leaves
 a course, fixes #559

---
 app/controllers/my_courses.php | 3 +++
 lib/classes/Seminar.class.php  | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/app/controllers/my_courses.php b/app/controllers/my_courses.php
index 4892d54043c..21cde0e1fdb 100644
--- a/app/controllers/my_courses.php
+++ b/app/controllers/my_courses.php
@@ -561,6 +561,9 @@ class MyCoursesController extends AuthenticatedController
                     // enable others to do something after the user has been deleted
                     NotificationCenter::postNotification('UserDidLeaveCourse', $course_id, $GLOBALS['user']->id);
 
+                    // Delete course related datafield entries
+                    DatafieldEntryModel::deleteBySQL('range_id = ? AND sec_range_id = ?', [$GLOBALS['user']->id, $course_id]);
+
                     // Delete from statusgroups
                     foreach (Statusgruppen::findBySeminar_id($course_id) as $group) {
                         $group->removeUser($GLOBALS['user']->id, true);
diff --git a/lib/classes/Seminar.class.php b/lib/classes/Seminar.class.php
index 099f1518e11..337eea6fe65 100644
--- a/lib/classes/Seminar.class.php
+++ b/lib/classes/Seminar.class.php
@@ -2048,6 +2048,9 @@ class Seminar
                 }
             }
 
+            // Delete course related datafield entries
+            DatafieldEntryModel::deleteBySQL('range_id = ? AND sec_range_id = ?', [$user_id, $this->id]);
+
             // Remove from associated status groups
             foreach (Statusgruppen::findBySeminar_id($this->id) as $group) {
                 $group->removeUser($user_id, true);
-- 
GitLab