mirrored from git://git.moodle.org/moodle.git
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'MDL-74584-master-v1' of https://github.com/mihailges/mo…
- Loading branch information
Showing
30 changed files
with
387 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
// 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/>. | ||
|
||
/** | ||
* Javascript module for confirming the acceptance of the current data processing agreement before enabling | ||
* the BigBlueButton activity module. | ||
* | ||
* @module mod_bigbluebuttonbn/accept_dpa | ||
* @copyright 2022 Mihail Geshoski <mihail@moodle.com> | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
|
||
import ModalForm from 'core_form/modalform'; | ||
import Notification from 'core/notification'; | ||
import {get_string as getString} from 'core/str'; | ||
|
||
/** | ||
* Initialize module. | ||
*/ | ||
export const init = () => { | ||
|
||
const modalForm = new ModalForm({ | ||
modalConfig: { | ||
title: getString('enablingbigbluebutton', 'mod_bigbluebuttonbn'), | ||
large: false, | ||
}, | ||
formClass: 'mod_bigbluebuttonbn\\form\\accept_dpa', | ||
saveButtonText: getString('enable'), | ||
}); | ||
|
||
// Once the form has been submitted and successfully processed, reload the page to enable the activity module. | ||
modalForm.addEventListener(modalForm.events.FORM_SUBMITTED, event => { | ||
if (event.detail.result) { | ||
window.location.reload(); | ||
} else { | ||
Notification.addNotification({ | ||
type: 'error', | ||
message: event.detail.errors.join('<br>') | ||
}); | ||
} | ||
}); | ||
|
||
modalForm.show(); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
<?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/>. | ||
|
||
namespace mod_bigbluebuttonbn\form; | ||
|
||
use context; | ||
use moodle_exception; | ||
use moodle_url; | ||
use core_form\dynamic_form; | ||
use mod_bigbluebuttonbn\local\config; | ||
|
||
/** | ||
* Accept data processing agreement form presented before enabling the BigBlueButton activity module. | ||
* | ||
* @package mod_bigbluebuttonbn | ||
* @copyright 2022 Mihail Geshoski <mihail@moodle.com> | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
class accept_dpa extends dynamic_form { | ||
|
||
/** | ||
* Form definition | ||
*/ | ||
protected function definition() { | ||
$this->_form->addElement('html', \html_writer::tag('p', | ||
get_string('enablingbigbluebuttondpainfo', 'mod_bigbluebuttonbn', config::DEFAULT_DPA_URL))); | ||
$this->_form->addElement('checkbox', 'acceptdefaultdpa', false, get_string('acceptdpa', 'mod_bigbluebuttonbn'), | ||
['class' => 'bold']); | ||
$this->_form->addRule('acceptdefaultdpa', get_string('required'), 'required', null, 'client'); | ||
} | ||
|
||
/** | ||
* Return form context | ||
* | ||
* @return context | ||
*/ | ||
protected function get_context_for_dynamic_submission(): context { | ||
return \context_system::instance(); | ||
} | ||
|
||
/** | ||
* Check if current user has access to this form, otherwise throw exception. | ||
* | ||
* @return void | ||
* @throws moodle_exception | ||
*/ | ||
protected function check_access_for_dynamic_submission(): void { | ||
require_capability('moodle/site:config', $this->get_context_for_dynamic_submission()); | ||
} | ||
|
||
/** | ||
* Process the form submission, used if form was submitted via AJAX. | ||
* | ||
* @return array | ||
*/ | ||
public function process_dynamic_submission(): array { | ||
$result = false; | ||
$errors = []; | ||
|
||
if ($this->get_data()->acceptdefaultdpa) { | ||
try { | ||
set_config('bigbluebuttonbn_default_dpa_accepted', true); | ||
$result = true; | ||
} catch (\Exception $e) { | ||
$errors[] = $e->getMessage(); | ||
} | ||
} | ||
|
||
return [ | ||
'result' => $result, | ||
'errors' => $errors, | ||
]; | ||
} | ||
|
||
/** | ||
* Load in existing data as form defaults (not applicable). | ||
* | ||
* @return void | ||
*/ | ||
public function set_data_for_dynamic_submission(): void { | ||
} | ||
|
||
/** | ||
* Returns url to set in $PAGE->set_url() when form is being rendered or submitted via AJAX. | ||
* | ||
* @return moodle_url | ||
*/ | ||
protected function get_page_url_for_dynamic_submission(): moodle_url { | ||
return new moodle_url('/admin/modules.php', ['show' => 'bigbluebuttonbn', 'sesskey' => sesskey()]); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
58 changes: 58 additions & 0 deletions
58
mod/bigbluebuttonbn/classes/task/send_bigbluebutton_module_disabled_notification.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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']); | ||
} |
Oops, something went wrong.