diff --git a/mod/bigbluebuttonbn/classes/meeting.php b/mod/bigbluebuttonbn/classes/meeting.php index cf0dc2b9970..6a86ef0350e 100644 --- a/mod/bigbluebuttonbn/classes/meeting.php +++ b/mod/bigbluebuttonbn/classes/meeting.php @@ -255,7 +255,8 @@ class meeting { !$instance->has_user_limit_been_reached($participantcount) || !$instance->does_current_user_count_towards_user_limit() ); - $canjoin = $canjoin && ($instance->is_currently_open() || $instance->user_can_force_join()); + // User should only join during scheduled session start and end time, if defined. + $canjoin = $canjoin && ($instance->is_currently_open()); // Double check that the user has the capabilities to join. $canjoin = $canjoin && $instance->can_join(); $meetinginfo->canjoin = $canjoin; diff --git a/mod/bigbluebuttonbn/tests/meeting_test.php b/mod/bigbluebuttonbn/tests/meeting_test.php index 042bc207c44..7e3bde54ea6 100644 --- a/mod/bigbluebuttonbn/tests/meeting_test.php +++ b/mod/bigbluebuttonbn/tests/meeting_test.php @@ -217,10 +217,15 @@ class meeting_test extends \advanced_testcase { $this->setUser($useringroup); $meeting->update_cache(); $this->assertEquals($canjoin['useringroup'], $meeting->can_join()); + // We check that admin can not join outside opening/closing times either. + $this->setAdminUser(); + $this->assertEquals(false, $meeting->can_join()); if ($groupname) { $this->setUser($usernotingroup); $meeting->update_cache(); $this->assertEquals($canjoin['usernotingroup'], $meeting->can_join()); + $this->setAdminUser(); + $this->assertEquals(false, $meeting->can_join()); } }