aboutsummaryrefslogtreecommitdiff
path: root/lib/classes/UserManagement.class.php
diff options
context:
space:
mode:
authorRon Lucke <lucke@elan-ev.de>2023-12-15 08:25:47 +0000
committerRon Lucke <lucke@elan-ev.de>2023-12-15 08:25:47 +0000
commit0e1abc0c9d1bafeb392011b1dedc609b3de6e46f (patch)
treec24daeb218afc294724692d720eb158bd2635ade /lib/classes/UserManagement.class.php
parent9da159cf2cb977e13eb9760a3bfa66eec33eeab3 (diff)
fix #1694
Closes #1694 Merge request studip/studip!2459
Diffstat (limited to 'lib/classes/UserManagement.class.php')
-rw-r--r--lib/classes/UserManagement.class.php21
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/classes/UserManagement.class.php b/lib/classes/UserManagement.class.php
index 5684126..1a92a95 100644
--- a/lib/classes/UserManagement.class.php
+++ b/lib/classes/UserManagement.class.php
@@ -800,7 +800,8 @@ class UserManagement
bool $delete_personal_content = true,
bool $delete_names = true,
bool $delete_memberships = true,
- bool $send_email_notification = true
+ bool $send_email_notification = true,
+ bool $delete_courseware = true
): bool {
global $perm;
@@ -983,6 +984,24 @@ class UserManagement
NotificationCenter::postNotification('UserDataDidRemove', $this->user_data['auth_user_md5.user_id'], 'course_documents');
}
+ // always delete personal courseware elements of this user
+ \Courseware\Unit::deleteBySQL('range_id = ?', [$this->user_data['auth_user_md5.user_id']]);
+ \Courseware\UserDataField::deleteBySQL('user_id = ?', [$this->user_data['auth_user_md5.user_id']]);
+ \Courseware\UserProgress::deleteBySQL('user_id = ?', [$this->user_data['auth_user_md5.user_id']]);
+ \Courseware\Bookmark::deleteBySQL('user_id = ?', [$this->user_data['auth_user_md5.user_id']]);
+
+ // delete courseware elements in courses of this user
+ if ($delete_courseware) {
+ \Courseware\Unit::deleteBySQL('creator_id = ?', [$this->user_data['auth_user_md5.user_id']]);
+ \Courseware\StructuralElement::deleteBySQL('owner_id = ?', [$this->user_data['auth_user_md5.user_id']]);
+ \Courseware\StructuralElementFeedback::deleteBySQL('user_id = ?', [$this->user_data['auth_user_md5.user_id']]);
+ \Courseware\StructuralElementComment::deleteBySQL('user_id = ?', [$this->user_data['auth_user_md5.user_id']]);
+ \Courseware\Container::deleteBySQL('owner_id = ?', [$this->user_data['auth_user_md5.user_id']]);
+ \Courseware\Block::deleteBySQL('owner_id = ?', [$this->user_data['auth_user_md5.user_id']]);
+ \Courseware\BlockFeedback::deleteBySQL('user_id = ?', [$this->user_data['auth_user_md5.user_id']]);
+ \Courseware\BlockComment::deleteBySQL('user_id = ?', [$this->user_data['auth_user_md5.user_id']]);
+ }
+
// delete all remaining user data in course context if option selected
if ($delete_content_from_course) {
$queries = [