diff options
| author | Ron Lucke <lucke@elan-ev.de> | 2023-12-15 08:25:47 +0000 |
|---|---|---|
| committer | Ron Lucke <lucke@elan-ev.de> | 2023-12-15 08:25:47 +0000 |
| commit | 0e1abc0c9d1bafeb392011b1dedc609b3de6e46f (patch) | |
| tree | c24daeb218afc294724692d720eb158bd2635ade /lib/classes/UserManagement.class.php | |
| parent | 9da159cf2cb977e13eb9760a3bfa66eec33eeab3 (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.php | 21 |
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 = [ |
