BREAKING CHANGE: legacy management routes now fail closed and the legacy helper API is removed.
This commit is contained in:
@@ -23,124 +23,8 @@
|
||||
*/
|
||||
|
||||
require_once(__DIR__ . '/../../config.php');
|
||||
require_once(__DIR__ . '/lib.php');
|
||||
|
||||
require_once($CFG->libdir . '/adminlib.php');
|
||||
require_once($CFG->libdir . '/tablelib.php');
|
||||
require_login();
|
||||
require_capability('moodle/site:config', context_system::instance());
|
||||
|
||||
/* Optional parameters */
|
||||
$backupservices = optional_param('getbackup', 0, PARAM_BOOL);
|
||||
$deleteid = optional_param('deleteid', 0, PARAM_INT);
|
||||
$hideshowid = optional_param('hideshowid', 0, PARAM_INT);
|
||||
|
||||
/* Link generation */
|
||||
$editservice = '/local/webhooks/editservice.php';
|
||||
$managerservice = '/local/webhooks/index.php';
|
||||
$restorebackup = '/local/webhooks/restorebackup.php';
|
||||
$baseurl = new moodle_url($managerservice);
|
||||
|
||||
/* Configure the context of the page */
|
||||
admin_externalpage_setup('local_webhooks', '', null, $baseurl);
|
||||
$context = context_system::instance();
|
||||
|
||||
/* Delete the service */
|
||||
if ((bool) $deleteid) {
|
||||
local_webhooks_remove_record($deleteid);
|
||||
redirect($PAGE->url, new lang_string('eventwebserviceservicedeleted', 'local_webhooks'));
|
||||
}
|
||||
|
||||
/* Retrieving a list of services */
|
||||
$callbacks = local_webhooks_get_list_records();
|
||||
|
||||
/* Upload settings as a file */
|
||||
if ((bool) $backupservices) {
|
||||
$filecontent = local_webhooks_create_backup();
|
||||
$filename = 'webhooks_' . date('U') . '.backup';
|
||||
send_file($filecontent, $filename, 0, 0, true, true);
|
||||
}
|
||||
|
||||
/* Switching the status of the service */
|
||||
if ((bool) $hideshowid) {
|
||||
$callback = $callbacks[$hideshowid];
|
||||
|
||||
if (!empty($callback)) {
|
||||
$callback->enable = !(bool) $callback->enable;
|
||||
local_webhooks_update_record($callback, false);
|
||||
redirect($PAGE->url, new lang_string('eventwebserviceserviceupdated', 'local_webhooks'));
|
||||
}
|
||||
}
|
||||
|
||||
/* The page title */
|
||||
$titlepage = new lang_string('pluginname', 'local_webhooks');
|
||||
$PAGE->set_heading($titlepage);
|
||||
$PAGE->set_title($titlepage);
|
||||
echo $OUTPUT->header();
|
||||
|
||||
/* Table declaration */
|
||||
$table = new flexible_table('webhooks-service-table');
|
||||
|
||||
/* Customize the table */
|
||||
$table->define_columns(
|
||||
[
|
||||
'title',
|
||||
'url',
|
||||
'actions',
|
||||
]
|
||||
);
|
||||
|
||||
$table->define_headers(
|
||||
[
|
||||
new lang_string('name', 'local_webhooks'),
|
||||
new lang_string('url', 'local_webhooks'),
|
||||
new lang_string('actions', 'local_webhooks'),
|
||||
]
|
||||
);
|
||||
|
||||
$table->define_baseurl($baseurl);
|
||||
$table->setup();
|
||||
|
||||
foreach ($callbacks as $callback) {
|
||||
/* Filling of information columns */
|
||||
$titlecallback = html_writer::div($callback->title, 'title');
|
||||
$urlcallback = html_writer::div($callback->url, 'url');
|
||||
|
||||
/* Defining service status */
|
||||
$hideshowicon = 't/show';
|
||||
$hideshowstring = new lang_string('enable', 'local_webhooks');
|
||||
if ((bool) $callback->enable) {
|
||||
$hideshowicon = 't/hide';
|
||||
$hideshowstring = new lang_string('disable', 'local_webhooks');
|
||||
}
|
||||
|
||||
/* Link to enable / disable the service */
|
||||
$hideshowlink = new moodle_url($managerservice, ['hideshowid' => $callback->id]);
|
||||
$hideshowitem = $OUTPUT->action_icon($hideshowlink, new pix_icon($hideshowicon, $hideshowstring));
|
||||
|
||||
/* Link for editing */
|
||||
$editlink = new moodle_url($editservice, ['serviceid' => $callback->id]);
|
||||
$edititem = $OUTPUT->action_icon($editlink, new pix_icon('t/edit', new lang_string('edit', 'local_webhooks')));
|
||||
|
||||
/* Link to remove */
|
||||
$deletelink = new moodle_url($managerservice, ['deleteid' => $callback->id]);
|
||||
$deleteitem = $OUTPUT->action_icon($deletelink, new pix_icon('t/delete', new lang_string('delete', 'local_webhooks')));
|
||||
|
||||
/* Adding data to the table */
|
||||
$table->add_data([$titlecallback, $urlcallback, $hideshowitem . $edititem . $deleteitem]);
|
||||
}
|
||||
|
||||
/* Display the table */
|
||||
$table->print_html();
|
||||
|
||||
/* Add service button */
|
||||
$addserviceurl = new moodle_url($editservice);
|
||||
echo $OUTPUT->single_button($addserviceurl, new lang_string('addaservice', 'local_webhooks'), 'get');
|
||||
|
||||
/* Button to get a backup */
|
||||
$backupurl = new moodle_url($managerservice, ['getbackup' => true]);
|
||||
echo $OUTPUT->single_button($backupurl, new lang_string('backup', 'local_webhooks'), 'get');
|
||||
|
||||
/* Button for restoring settings */
|
||||
$restorebackupurl = new moodle_url($restorebackup);
|
||||
echo $OUTPUT->single_button($restorebackupurl, new lang_string('restore', 'local_webhooks'), 'get');
|
||||
|
||||
echo $OUTPUT->footer();
|
||||
throw new moodle_exception('legacyuidisabled', 'local_webhooks');
|
||||
|
||||
Reference in New Issue
Block a user