From a7502e2fc7e482a8d6254b372c2bff81d91bbaa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ure=C3=B1a?= Date: Tue, 14 Oct 2025 23:25:54 +0200 Subject: [PATCH] MDL-86893 mod_bigbluebuttonbn: user_must_wait_to_join into meeting info --- .../bigbluebuttonbn/classes/external/meeting_info.php | 1 + public/mod/bigbluebuttonbn/classes/meeting.php | 1 + public/mod/bigbluebuttonbn/tests/meeting_test.php | 11 +++++++++++ 3 files changed, 13 insertions(+) diff --git a/public/mod/bigbluebuttonbn/classes/external/meeting_info.php b/public/mod/bigbluebuttonbn/classes/external/meeting_info.php index c796183d0d2..d125a5bf13c 100644 --- a/public/mod/bigbluebuttonbn/classes/external/meeting_info.php +++ b/public/mod/bigbluebuttonbn/classes/external/meeting_info.php @@ -128,6 +128,7 @@ class meeting_info extends external_api { 'participantplural' => new external_value(PARAM_BOOL, 'Several participants ?', VALUE_OPTIONAL), 'canjoin' => new external_value(PARAM_BOOL, 'Can join'), 'ismoderator' => new external_value(PARAM_BOOL, 'Is moderator'), + 'usermustwaittojoin' => new external_value(PARAM_BOOL, 'User must wait to join', VALUE_OPTIONAL), 'presentations' => new external_multiple_structure( new external_single_structure([ 'url' => new external_value(PARAM_URL, 'presentation URL'), diff --git a/public/mod/bigbluebuttonbn/classes/meeting.php b/public/mod/bigbluebuttonbn/classes/meeting.php index a6d9b10daa7..d3fd44bc641 100644 --- a/public/mod/bigbluebuttonbn/classes/meeting.php +++ b/public/mod/bigbluebuttonbn/classes/meeting.php @@ -233,6 +233,7 @@ class meeting { 'cmid' => $instance->get_cm_id(), 'ismoderator' => $instance->is_moderator(), 'joinurl' => $instance->get_join_url()->out(), + 'usermustwaittojoin' => $instance->user_must_wait_to_join(), 'userlimit' => $instance->get_user_limit(), 'presentations' => [], ]; diff --git a/public/mod/bigbluebuttonbn/tests/meeting_test.php b/public/mod/bigbluebuttonbn/tests/meeting_test.php index 7b66fbd6831..7c8d24c21e0 100644 --- a/public/mod/bigbluebuttonbn/tests/meeting_test.php +++ b/public/mod/bigbluebuttonbn/tests/meeting_test.php @@ -149,6 +149,7 @@ final class meeting_test extends \advanced_testcase { $this->assertNotNull($meetinginfo); $this->assertEquals($activity->id, $meetinginfo->bigbluebuttonbnid); $this->assertTrue($meetinginfo->statusrunning); + $this->assertFalse($meetinginfo->usermustwaittojoin); $this->assertStringContainsString("in progress", $meetinginfo->statusmessage); $this->assertEquals($groupid, $meetinginfo->groupid); $meeting->end_meeting(); @@ -255,6 +256,9 @@ final class meeting_test extends \advanced_testcase { // The moderator has not joined. $this->setUser($student); $meeting->update_cache(); + $meetinginfo = $meeting->get_meeting_info(); + $this->assertNotNull($meetinginfo); + $this->assertTrue($meetinginfo->usermustwaittojoin); $this->expectException(\mod_bigbluebuttonbn\local\exceptions\meeting_join_exception::class); meeting::join_meeting($instance); } @@ -289,6 +293,9 @@ final class meeting_test extends \advanced_testcase { $this->setUser($moderator); $meeting->update_cache(); + $meetinginfo = $meeting->get_meeting_info(); + $this->assertNotNull($meetinginfo); + $this->assertFalse($meetinginfo->usermustwaittojoin); $joinurl = $meeting->join(logger::ORIGIN_BASE); $this->assertIsString($joinurl); $this->join_meeting($joinurl); @@ -297,6 +304,10 @@ final class meeting_test extends \advanced_testcase { // The student can now join the meeting as a moderator is present. $this->setUser($student); + $meeting->update_cache(); + $meetinginfo = $meeting->get_meeting_info(); + $this->assertNotNull($meetinginfo); + $this->assertTrue($meetinginfo->usermustwaittojoin); $joinurl = $meeting->join(logger::ORIGIN_BASE); $this->assertIsString($joinurl); }