MDL-86893 mod_bigbluebuttonbn: user_must_wait_to_join into meeting info

This commit is contained in:
Daniel Ureña
2026-02-17 10:04:56 +01:00
parent 5586d836a9
commit a7502e2fc7
3 changed files with 13 additions and 0 deletions
@@ -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'),
@@ -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' => [],
];
@@ -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);
}