refactor!: retire legacy administration
Moodle Plugin CI / test (push) Successful in 3m26s

BREAKING CHANGE: legacy management routes now fail closed and the legacy helper API is removed.
This commit is contained in:
2026-08-20 08:08:30 +00:00
parent 297e4ab7cd
commit 82ba9222ff
17 changed files with 127 additions and 737 deletions
+3 -78
View File
@@ -23,83 +23,8 @@
*/
require_once(__DIR__ . '/../../config.php');
require_once(__DIR__ . '/classes/service_edit_form.php');
require_once(__DIR__ . '/lib.php');
require_once($CFG->libdir . '/adminlib.php');
require_login();
require_capability('moodle/site:config', context_system::instance());
/* Optional parameters */
$serviceid = optional_param('serviceid', 0, PARAM_INT);
/* Link generation */
$urlparameters = ['serviceid' => $serviceid];
$baseurl = new moodle_url('/local/webhooks/editservice.php', $urlparameters);
$managerservice = new moodle_url('/local/webhooks/index.php');
/* Configure the context of the page */
admin_externalpage_setup('local_webhooks', '', null, $baseurl);
$context = context_system::instance();
/* Create an editing form */
$mform = new service_edit_form($PAGE->url);
/* Cancel processing */
if ($mform->is_cancelled()) {
redirect($managerservice);
}
/* Getting the data */
$servicerecord = new stdClass();
if (($editing = (bool) $serviceid) === true) {
$servicerecord = local_webhooks_get_record($serviceid);
if (is_array($servicerecord->events)) {
$events = [];
/* Escaping event names */
foreach ($servicerecord->events as $eventname => $eventstatus) {
$eventname = base64_encode($eventname);
$events[$eventname] = $eventstatus;
}
$servicerecord->events = $events;
}
$mform->set_data($servicerecord);
}
/* Processing of received data */
if (!empty($data = $mform->get_data())) {
if (is_array($data->events)) {
$events = [];
/* Deciphering event names */
foreach ($data->events as $eventname => $eventstatus) {
$eventname = (string) base64_decode($eventname);
$events[$eventname] = $eventstatus;
}
$data->events = $events;
}
if ($editing) {
$data->id = $serviceid;
local_webhooks_update_record($data, false);
redirect($managerservice, new lang_string('eventwebserviceserviceupdated', 'local_webhooks'));
} else {
local_webhooks_update_record($data);
redirect($managerservice, new lang_string('eventwebserviceservicecreated', 'local_webhooks'));
}
}
/* The page title */
$titlepage = new lang_string('externalservice', 'local_webhooks');
$PAGE->navbar->add($titlepage);
$PAGE->set_heading($titlepage);
$PAGE->set_title($titlepage);
echo $OUTPUT->header();
/* Displays the form */
$mform->display();
echo $OUTPUT->footer();
throw new moodle_exception('legacyuidisabled', 'local_webhooks');