Skip to content

Commit

Permalink
MDL-74584 mod_bigbluebuttonbn: Add install script and new upgrade step
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Mihail Geshoski committed May 6, 2022
1 parent 2e1478b commit 0118227
Show file tree
Hide file tree
Showing 5 changed files with 117 additions and 1 deletion.
@@ -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 <mihail@moodle.com>
* @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 changes: 33 additions & 0 deletions mod/bigbluebuttonbn/db/install.php
@@ -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 <mihail@moodle.com>
* @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']);
}
23 changes: 23 additions & 0 deletions mod/bigbluebuttonbn/db/upgrade.php
Expand Up @@ -415,6 +415,29 @@ function xmldb_bigbluebuttonbn_upgrade($oldversion = 0) {
upgrade_mod_savepoint(true, 2022021601, 'bigbluebuttonbn');
}

// Automatically generated Moodle v4.0.0 release upgrade line.
// Put any upgrade step following this.

if ($oldversion < 2022041901) {

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, 2022041901, 'bigbluebuttonbn');
}

return true;
}

Expand Down
2 changes: 2 additions & 0 deletions mod/bigbluebuttonbn/lang/en/bigbluebuttonbn.php
Expand Up @@ -44,6 +44,8 @@
$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/>
Expand Down
2 changes: 1 addition & 1 deletion mod/bigbluebuttonbn/version.php
Expand Up @@ -27,6 +27,6 @@
defined('MOODLE_INTERNAL') || die;


$plugin->version = 2022041900;
$plugin->version = 2022041901;
$plugin->requires = 2022041200;
$plugin->component = 'mod_bigbluebuttonbn';

0 comments on commit 0118227

Please sign in to comment.