From d72ebf1bf296983963e7b8bd852299c89e148100 Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Thu, 21 Sep 2023 21:14:59 +0800 Subject: [PATCH] MDL-78129 communication_matrix: Update room membership on unennrol --- lib/accesslib.php | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/accesslib.php b/lib/accesslib.php index f0a8375b330..93398aff7db 100644 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -1699,17 +1699,6 @@ function role_unassign($roleid, $userid, $contextid, $component = '', $itemid = } } - // Update the room membership and power levels when the user role changes. - if (\core_communication\api::is_available() && $coursecontext = $context->get_course_context(false)) { - $communication = \core_communication\api::load_by_instance( - 'core_course', - 'coursecommunication', - $coursecontext->instanceid, - ); - - $communication->update_room_membership([$userid]); - } - role_unassign_all(array('roleid'=>$roleid, 'userid'=>$userid, 'contextid'=>$contextid, 'component'=>$component, 'itemid'=>$itemid), false, false); } @@ -1772,6 +1761,19 @@ function role_unassign_all(array $params, $subcontexts = false, $includemanual = $event->add_record_snapshot('role_assignments', $ra); $event->trigger(); core_course_category::role_assignment_changed($ra->roleid, $context); + + // Update the room membership and power levels when the user role changes. + if (\core_communication\api::is_available() && $coursecontext = $context->get_course_context(false)) { + $communication = \core_communication\api::load_by_instance( + 'core_course', + 'coursecommunication', + $coursecontext->instanceid, + ); + + $communication->update_room_membership([$ra->userid]); + } + + } } unset($ras);