MDL-68406 tool_mobile: Allow users to log-out from the app
[moodle.git] / admin / tool / mobile / logout.php
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
17 /**
18  * Log out a user from his external mobile devices (phones, tables, Moodle Desktop app, etc..)
19  *
20  * @package tool_mobile
21  * @copyright 2020 Juan Leyva <juan@moodle.com>
22  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
25 require(__DIR__ . '/../../../config.php');
26 require_once($CFG->dirroot . '/admin/tool/mobile/lib.php');
27 require_once($CFG->dirroot . '/webservice/lib.php');
29 if (!$CFG->enablemobilewebservice) {
30     print_error('enablewsdescription', 'webservice');
31 }
33 require_login(null, false);
35 // Require an active user: not guest, not suspended.
36 core_user::require_active_user($USER);
38 $redirecturl = new \moodle_url('/user/profile.php');
40 if (optional_param('confirm', 0, PARAM_INT) && data_submitted()) {
41     require_sesskey();
43     // Get the mobile service token to be deleted.
44     $token = tool_mobile_get_token($USER->id);
46     if ($token) {
47         $webservicemanager = new webservice();
48         $webservicemanager->delete_user_ws_token($token->id);
49     }
50     redirect($redirecturl);
51 }
53 // Page settings.
54 $title = get_string('logout');
55 $context = context_system::instance();
56 $PAGE->set_url(new \moodle_url('/'.$CFG->admin.'/tool/mobile/logout.php'));
57 $PAGE->navbar->add($title);
58 $PAGE->set_context($context);
59 $PAGE->set_title($SITE->fullname. ': ' . $title);
61 // Display the page.
62 echo $OUTPUT->header();
64 $message = get_string('logoutconfirmation', 'tool_mobile');
65 $confirmurl = new \moodle_url('logout.php', ['confirm' => 1]);
66 $yesbutton = new single_button($confirmurl, get_string('yes'), 'post');
67 $nobutton = new single_button($redirecturl, get_string('no'));
68 echo $OUTPUT->confirm($message, $yesbutton, $nobutton);
70 echo $OUTPUT->footer();