MDL-69848 upgrade: Delete notifications in chunks
[moodle.git] / message / output / popup / mark_notification_read.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  * Mark a notification read and redirect to the relevant content.
19  *
20  * @package    message_popup
21  * @copyright  2018 Michael Hawkins
22  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
25 require_once(__DIR__ . '/../../../config.php');
27 require_login(null, false);
29 if (isguestuser()) {
30     redirect($CFG->wwwroot);
31 }
33 $notificationid = required_param('notificationid', PARAM_INT);
35 $notification = $DB->get_record('notifications', array('id' => $notificationid));
37 // If the redirect URL after filtering is empty, or it was never passed, then redirect to the notification page.
38 if (!empty($notification->contexturl)) {
39     $redirecturl = new moodle_url($notification->contexturl);
40 } else {
41     $redirecturl = new moodle_url('/message/output/popup/notifications.php', ['notificationid' => $notificationid]);
42 }
44 // Check notification belongs to this user.
45 if ($USER->id != $notification->useridto) {
46     redirect($CFG->wwwroot);
47 }
49 \core_message\api::mark_notification_as_read($notification);
50 redirect($redirecturl);