diff --git a/public/mod/bigbluebuttonbn/classes/setting_validator.php b/public/mod/bigbluebuttonbn/classes/setting_validator.php index e3c2bdeacdd..8e9fda60383 100644 --- a/public/mod/bigbluebuttonbn/classes/setting_validator.php +++ b/public/mod/bigbluebuttonbn/classes/setting_validator.php @@ -162,6 +162,16 @@ class setting_validator { !isset($CFG->bigbluebuttonbn['meetingevents_enabled'])); } + /** + * Validate if settings extended section will be shown. + * + * @return bool + */ + public static function section_session_access_shown() { + global $CFG; + return (!isset($CFG->bigbluebuttonbn['guestaccess_enabled'])); + } + /** * Validate if muteonstart section will be shown. * diff --git a/public/mod/bigbluebuttonbn/classes/settings.php b/public/mod/bigbluebuttonbn/classes/settings.php index 87019e718a7..d81e57dc8ab 100644 --- a/public/mod/bigbluebuttonbn/classes/settings.php +++ b/public/mod/bigbluebuttonbn/classes/settings.php @@ -113,8 +113,8 @@ class settings { $this->add_lock_settings(); // Renders settings for extended capabilities. $this->add_extended_settings(); - // Renders settings for experimental features. - $this->add_experimental_settings(); + // Renders settings for session access features. + $this->add_sessionaccess_settings(); // Add all subplugin settings if any. $this->admin->add($this->parent, new admin_category('bbbextplugins', @@ -949,6 +949,18 @@ class settings { get_string('config_extended_capabilities_description', 'bigbluebuttonbn') ); $extendedcapabilitiessetting->add($item); + // UI for 'register meeting events' feature. + $item = new admin_setting_configcheckbox( + 'bigbluebuttonbn_meetingevents_enabled', + get_string('config_meetingevents_enabled', 'bigbluebuttonbn'), + get_string('config_meetingevents_enabled_description', 'bigbluebuttonbn'), + 0 + ); + $this->add_conditional_element( + 'meetingevents_enabled', + $item, + $extendedcapabilitiessetting + ); // UI for 'notify users when recording ready' feature. $item = new admin_setting_configcheckbox( 'bigbluebuttonbn_recordingready_enabled', @@ -978,36 +990,24 @@ class settings { } /** - * Helper function renders experimental settings if any of the features there is enabled. + * Helper function renders session access settings if any of the features there is enabled. */ - protected function add_experimental_settings(): void { - // Configuration for experimental features should go here. - $experimentalfeaturessetting = new admin_settingpage( - "{$this->sectionnameprefix}_experimentalfeatures", - get_string('config_experimental_features', 'bigbluebuttonbn'), + protected function add_sessionaccess_settings(): void { + // Configuration for session access should go here. + $sessionaccessfeaturesetting = new admin_settingpage( + "{$this->sectionnameprefix}_sessionaccess", + get_string('config_session_access', 'bigbluebuttonbn'), 'moodle/site:config', - !((boolean) setting_validator::section_settings_extended_shown()) && ($this->moduleenabled) + !((bool) setting_validator::section_session_access_shown()) && ($this->moduleenabled) ); if ($this->admin->fulltree) { $item = new admin_setting_heading( - 'bigbluebuttonbn_config_experimental_features', + 'bigbluebuttonbn_config_session_access', '', - get_string('config_experimental_features_description', 'bigbluebuttonbn') - ); - $experimentalfeaturessetting->add($item); - // UI for 'register meeting events' feature. - $item = new admin_setting_configcheckbox( - 'bigbluebuttonbn_meetingevents_enabled', - get_string('config_meetingevents_enabled', 'bigbluebuttonbn'), - get_string('config_meetingevents_enabled_description', 'bigbluebuttonbn'), - 0 - ); - $this->add_conditional_element( - 'meetingevents_enabled', - $item, - $experimentalfeaturessetting + get_string('config_session_access_description', 'bigbluebuttonbn') ); + $sessionaccessfeaturesetting->add($item); // UI for 'register meeting events' feature. $item = new admin_setting_configcheckbox( 'bigbluebuttonbn_guestaccess_enabled', @@ -1018,10 +1018,10 @@ class settings { $this->add_conditional_element( 'guestaccess_enabled', $item, - $experimentalfeaturessetting + $sessionaccessfeaturesetting ); } - $this->admin->add($this->parent, $experimentalfeaturessetting); + $this->admin->add($this->parent, $sessionaccessfeaturesetting); } /** diff --git a/public/mod/bigbluebuttonbn/lang/en/bigbluebuttonbn.php b/public/mod/bigbluebuttonbn/lang/en/bigbluebuttonbn.php index 6fb1b301205..7d5ba9f1365 100644 --- a/public/mod/bigbluebuttonbn/lang/en/bigbluebuttonbn.php +++ b/public/mod/bigbluebuttonbn/lang/en/bigbluebuttonbn.php @@ -102,8 +102,6 @@ $string['config_disablepublicchat_default'] = 'Disable public chat enabled by de $string['config_disablepublicchat_default_description'] = 'If enabled the public chat will be disabled.'; $string['config_disablepublicchat_editable'] = 'Disable public chat can be edited'; $string['config_disablepublicchat_editable_description'] = 'Disable public chat by default can be edited when the instance is added or updated.'; -$string['config_experimental_features'] = 'Experimental features'; -$string['config_experimental_features_description'] = 'Configuration for experimental features.'; $string['config_extended_capabilities'] = 'Extended capabilities'; $string['config_extended_capabilities_description'] = 'Configuration for extended capabilities when the BigBlueButton server offers them.'; $string['config_general'] = 'General settings'; @@ -192,6 +190,8 @@ $string['config_scheduled_pre_opening'] = 'Accessible before opening time'; $string['config_scheduled_pre_opening_description'] = 'The time in minutes that the room is open for prior to the scheduled opening time.'; $string['config_server_url'] = 'BigBlueButton server URL'; $string['config_server_url_description'] = 'The URL of your BigBlueButton server.'; +$string['config_session_access'] = 'Session Access'; +$string['config_session_access_description'] = 'Configuration for user access to sessions.'; $string['config_shared_secret'] = 'BigBlueButton shared secret'; $string['config_shared_secret_description'] = 'The security secret of your BigBlueButton server.'; $string['config_showpresentation_default'] = 'Show presentation file on activity page'; @@ -616,3 +616,6 @@ $string['waitformoderator'] = 'Waiting for a moderator to join.'; // Deprecated since Moodle 4.5. $string['view_mobile_message_groups_not_supported'] = 'This instance is enabled to work with groups but the mobile app doesn\'t yet support it. Please use the web version.'; $string['view_mobile_message_reload_page_creation_time_meeting'] = 'You exceeded 45 seconds on this page. Please refresh the page to join the session.'; +// Deprecated since Moodle 5.2. +$string['config_experimental_features'] = 'Experimental features'; +$string['config_experimental_features_description'] = 'Configuration for experimental features.'; diff --git a/public/mod/bigbluebuttonbn/lang/en/deprecated.txt b/public/mod/bigbluebuttonbn/lang/en/deprecated.txt index c3a7de47f3f..c281b205333 100644 --- a/public/mod/bigbluebuttonbn/lang/en/deprecated.txt +++ b/public/mod/bigbluebuttonbn/lang/en/deprecated.txt @@ -1,2 +1,4 @@ view_mobile_message_reload_page_creation_time_meeting,mod_bigbluebuttonbn view_mobile_message_groups_not_supported,mod_bigbluebuttonbn +config_experimental_features,mod_bigbluebuttonbn +config_experimental_features_description,mod_bigbluebuttonbn diff --git a/public/mod/bigbluebuttonbn/tests/behat/edit_instance.feature b/public/mod/bigbluebuttonbn/tests/behat/edit_instance.feature index 58a6c9f1344..11cab2ef102 100644 --- a/public/mod/bigbluebuttonbn/tests/behat/edit_instance.feature +++ b/public/mod/bigbluebuttonbn/tests/behat/edit_instance.feature @@ -33,7 +33,7 @@ Feature: I can edit a bigbluebutton instance | activity | course | name | type | | bigbluebuttonbn | Test course | RoomRecordings | 0 | And the following config values are set as admin: - | bigbluebuttonbn_config_experimental_features | 1 | + | bigbluebuttonbn_config_extended_capabilities | 1 | | bigbluebuttonbn_meetingevents_enabled | 1 | And the following "users" exist: | username | firstname | lastname |