diff --git a/mod/bigbluebuttonbn/classes/meeting.php b/mod/bigbluebuttonbn/classes/meeting.php index b52ce970383..67f6a74df5b 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 2fcb3f2083a..7ef952a91f5 100644 --- a/mod/bigbluebuttonbn/tests/meeting_test.php +++ b/mod/bigbluebuttonbn/tests/meeting_test.php @@ -206,10 +206,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()); } }