MDL-74584 mod_bigbluebuttonbn: Add install script and new upgrade step

Adds a new install script for the BBB module and a new upgrade step.
The BBB module now will be disabled by default for new installations
and also it will be disabled for the existing sites that use the
default BBB server configuration. Admistrators will be required to
confirm the acceptance of the related DPA prior to (re)enabling the
plugin once again.
This commit is contained in:
Mihail Geshoski
2022-05-06 14:39:06 +08:00
parent b9b9ec82d4
commit c23b67be46
5 changed files with 114 additions and 1 deletions
@@ -0,0 +1,58 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
declare(strict_types=1);
namespace mod_bigbluebuttonbn\task;
use core\task\adhoc_task;
use core\message\message;
use mod_bigbluebuttonbn\local\config;
/**
* Ad-hoc task to send a notification related to the disabling of the BigBlueButton activity module.
*
* The ad-hoc tasks sends a notification to the administrator informing that the BigBlueButton activity module has
* been disabled and they are required to confirm their acceptance of the data processing agreement prior to
* re-enabling it.
*
* @package mod_bigbluebuttonbn
* @copyright 2022 Mihail Geshoski <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class send_bigbluebutton_module_disabled_notification extends adhoc_task {
/**
* Execute the task.
*/
public function execute(): void {
$message = new message();
$message->component = 'moodle';
$message->name = 'notices';
$message->userfrom = \core_user::get_noreply_user();
$message->userto = get_admin();
$message->notification = 1;
$message->contexturl = (new \moodle_url('/admin/modules.php'))->out(false);
$message->contexturlname = get_string('modsettings', 'admin');
$message->subject = get_string('bigbluebuttondisablednotification_subject', 'mod_bigbluebuttonbn');
$message->fullmessageformat = FORMAT_HTML;
$message->fullmessagehtml = get_string('bigbluebuttondisablednotification', 'mod_bigbluebuttonbn',
config::DEFAULT_DPA_URL);
$message->smallmessage = strip_tags($message->fullmessagehtml);
message_send($message);
}
}
+33
View File
@@ -0,0 +1,33 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Install script for mod_bigbluebuttonbn.
*
* @package mod_bigbluebuttonbn
* @copyright 2022 Mihail Geshoski <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/**
* Perform the post-install procedures.
*/
function xmldb_bigbluebuttonbn_install() {
global $DB;
// Disable the BigBlueButton activity module on new installs by default.
$DB->set_field('modules', 'visible', 0, ['name' => 'bigbluebuttonbn']);
}
+20
View File
@@ -418,6 +418,26 @@ function xmldb_bigbluebuttonbn_upgrade($oldversion = 0) {
// Automatically generated Moodle v4.0.0 release upgrade line.
// Put any upgrade step following this.
if ($oldversion < 2022050600) {
set_config('bigbluebuttonbn_default_dpa_accepted', false);
// If the default server configuration is used.
if (config::get('server_url') === config::DEFAULT_SERVER_URL) {
// Disable the BigBlueButton activity module.
$DB->set_field('modules', 'visible', 0, ['name' => 'bigbluebuttonbn']);
// Use an adhoc task to send a notification to inform the admin that the BigBlueButton activity module
// has been disabled and they are required to confirm their acceptance of the data processing agreement
// prior to re-enabling it.
$notificationtask = new mod_bigbluebuttonbn\task\send_bigbluebutton_module_disabled_notification();
core\task\manager::queue_adhoc_task($notificationtask);
}
// Bigbluebuttonbn savepoint reached.
upgrade_mod_savepoint(true, 2022050600, 'bigbluebuttonbn');
}
return true;
}
@@ -44,6 +44,8 @@ $string['bigbluebuttonbn:unprotectrecordings'] = 'Unprotect recordings';
$string['bigbluebuttonbn:deleterecordings'] = 'Delete recordings';
$string['bigbluebuttonbn:importrecordings'] = 'Import recordings';
$string['bigbluebuttonbn'] = 'BigBlueButton';
$string['bigbluebuttondisablednotification_subject'] = 'BigBlueButton activity module disabled.';
$string['bigbluebuttondisablednotification'] = 'The BigBlueButton activity module has been disabled and any existing BigBlueButton course activities are currently not accessible. Prior to re-enabling this plugin, please ensure that you have read and accepted the <a href="{$a}" target="_blank">data processing agreement</a> with Blindside Networks Inc.';
$string['cannotperformaction'] = 'Cannot perform action {$a} on this recording';
$string['enablingbigbluebutton'] = 'Enabling BigBlueButton activity';
$string['enablingbigbluebuttondpainfo'] = 'In order to meet your data protection obligations, prior to enabling this plugin, you may need to ensure that you have read and accepted the <a href="{$a}" target="_blank">data processing agreement</a> with Blindside Networks Inc.<br/>
+1 -1
View File
@@ -27,6 +27,6 @@
defined('MOODLE_INTERNAL') || die;
$plugin->version = 2022041900;
$plugin->version = 2022050600;
$plugin->requires = 2022041200;
$plugin->component = 'mod_bigbluebuttonbn';