diff --git a/mod/bigbluebuttonbn/guest.php b/mod/bigbluebuttonbn/guest.php index 8a424adcfe8..da5c1f32940 100644 --- a/mod/bigbluebuttonbn/guest.php +++ b/mod/bigbluebuttonbn/guest.php @@ -31,8 +31,8 @@ use mod_bigbluebuttonbn\plugin; require(__DIR__.'/../../config.php'); global $PAGE, $OUTPUT, $DB, $SITE; -// Still run through basic setup of the page. -require_course_login($SITE); +// Note here that we do not use require_login as the $CFG->forcelogin would prevent guest user from accessing this page. +$PAGE->set_course($SITE); // Intialise the page and run through the setup. $uid = required_param('uid', PARAM_ALPHANUMEXT); $bbid = $DB->get_field('bigbluebuttonbn', 'id', ['guestlinkuid' => trim($uid)]); diff --git a/mod/bigbluebuttonbn/tests/behat/guest_access.feature b/mod/bigbluebuttonbn/tests/behat/guest_access.feature index dca885c625f..d1a1bfe5d9e 100644 --- a/mod/bigbluebuttonbn/tests/behat/guest_access.feature +++ b/mod/bigbluebuttonbn/tests/behat/guest_access.feature @@ -10,20 +10,19 @@ Feature: Guest access allows external users to connect to a meeting And the following "activities" exist: | activity | name | intro | course | idnumber | type | recordings_imported | guestallowed | | bigbluebuttonbn | RoomRecordings | Test Room Recording description | C1 | bigbluebuttonbn1 | 0 | 0 | 0 | - | bigbluebuttonbn | RoomRecordingsWithguest | Test Room with guest | C1 | bigbluebuttonbn1 | 0 | 0 | 1 | + | bigbluebuttonbn | RoomRecordingsWithGuest | Test Room with guest | C1 | bigbluebuttonbn1 | 0 | 0 | 1 | @javascript - Scenario: I need to enable guest access to see the instance parameters + Scenario Outline: I need to enable guest access to see the instance parameters Given the following config values are set as admin: - | bigbluebuttonbn_guestaccess_enabled | 1 | + | bigbluebuttonbn_guestaccess_enabled | | When I am on the "RoomRecordings" "bigbluebuttonbn activity editing" page logged in as "admin" - Then I should see "Guest access" - Then I log out - Given the following config values are set as admin: - | bigbluebuttonbn_guestaccess_enabled | 0 | - When I am on the "RoomRecordings" "bigbluebuttonbn activity editing" page logged in as "admin" - Then I should not see "Guest access" + Then I "Guest access" Then I log out + Examples: + | guestaccess | result | + | 1 | should see | + | 0 | should not see | @javascript Scenario: I should see Guest settings on the module form @@ -44,20 +43,40 @@ Feature: Guest access allows external users to connect to a meeting Then I log out @javascript - Scenario: I should be able to invite guest to the meeting + Scenario: I should be able to use the guest link and see the popup dialog Given the following config values are set as admin: | bigbluebuttonbn_guestaccess_enabled | 1 | - When I am on the "RoomRecordingsWithguest" "bigbluebuttonbn activity" page logged in as "admin" - Then I should see "Add guests" - And I click on "Add guests" "button" + When I am on the "RoomRecordingsWithGuest" "bigbluebuttonbn activity" page logged in as "admin" + Then I click on "Add guests" "button" And I should see "Meeting link" And I should see "Meeting password" And I should see "Copy link" And I should see "Copy password" - When I set the field "Guest emails" to "123" + + @javascript + Scenario: I should see errors when submitting the guest access form with erroneous values + Given the following config values are set as admin: + | bigbluebuttonbn_guestaccess_enabled | 1 | + And I am on the "RoomRecordingsWithGuest" "bigbluebuttonbn activity" page logged in as "admin" + And I click on "Add guests" "button" + And I set the field "Guest emails" to "123" When I click on "OK" "button" in the "Add guests to this meeting" "dialogue" Then I should see "Invalid email: 123" - When I set the field "Guest emails" to "testuser@email.com" - When I click on "OK" "button" in the "Add guests to this meeting" "dialogue" + + @javascript + Scenario: I should be able to invite guest to the meeting + Given the following config values are set as admin: + | bigbluebuttonbn_guestaccess_enabled | 1 | + And I am on the "RoomRecordingsWithGuest" "bigbluebuttonbn activity" page logged in as "admin" + And I click on "Add guests" "button" + And I set the field "Guest emails" to "testuser@email.com" + And I click on "OK" "button" in the "Add guests to this meeting" "dialogue" Then I should see "An invitation will be sent to testuser@email.com." Then I log out + + Scenario: I should be able to invite guest to the meeting even if forcelogin is set + Given the following config values are set as admin: + | bigbluebuttonbn_guestaccess_enabled | 1 | + | forcelogin | 1 | + When I am on the "RoomRecordingsWithGuest" "mod_bigbluebuttonbn > BigblueButtonBN Guest" page + Then I should see "C1: RoomRecordingsWithGuest"