on-demand release 4.2dev+
[moodle.git] / mod / lti / registrationreturn.php
CommitLineData
e3f69b58 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/>.
16
17/**
18 * Handle the return from the Tool Provider after registering a tool proxy.
19 *
20 * @package mod_lti
21 * @copyright 2014 Vital Source Technologies http://vitalsource.com
22 * @author Stephen Vickers
23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24 */
25
26require_once('../../config.php');
27require_once($CFG->dirroot.'/mod/lti/locallib.php');
28
29$top = optional_param('top', 0, PARAM_INT);
c3a0452a
DW
30$msg = optional_param('lti_msg', '', PARAM_TEXT);
31$err = optional_param('lti_errormsg', '', PARAM_TEXT);
e3f69b58 32$id = optional_param('id', 0, PARAM_INT);
33
34// No guest autologin.
c3a0452a 35require_sesskey();
e3f69b58 36require_login(0, false);
37
38$systemcontext = context_system::instance();
39require_capability('moodle/site:config', $systemcontext);
40
41if (empty($top)) {
42
43 $params = array();
c3a0452a 44 $params['sesskey'] = sesskey();
e3f69b58 45 $params['top'] = '1';
46 if (!empty($msg)) {
47 $params['lti_msg'] = $msg;
48 }
49 if (!empty($err)) {
50 $params['lti_errormsg'] = $err;
51 }
52 if (!empty($id)) {
53 $params['id'] = $id;
54 }
55 $redirect = new moodle_url('/mod/lti/registrationreturn.php', $params);
56 $redirect = $redirect->out(false);
57
58 $clickhere = get_string('click_to_continue', 'lti', (object)array('link' => $redirect));
59 $html = <<< EOD
60<html>
61<head>
c3a0452a 62<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
e3f69b58 63<script type="text/javascript">
64//<![CDATA[
65top.location.href = '{$redirect}';
66//]]
67</script>
68</head>
69<body>
70<noscript>
71{$clickhere}
72</noscript>
73</body>
74</html>
75EOD;
c3a0452a
DW
76
77 // We always send the headers because they set the encoding.
78 send_headers('text/html; charset=utf-8', false);
e3f69b58 79 echo $html;
80
81} else if (!empty($msg) && !empty($err)) {
82
83 $params = array();
c3a0452a 84 $params['sesskey'] = sesskey();
e3f69b58 85 $params['top'] = '1';
86 if (!empty($err)) {
87 $params['lti_errormsg'] = $err;
88 }
89 if (!empty($id)) {
90 $params['id'] = $id;
91 }
92 $redirect = new moodle_url('/mod/lti/registrationreturn.php', $params);
93 $redirect = $redirect->out(false);
94 redirect($redirect, $err);
95
96} else {
97
98 $redirect = new moodle_url('/mod/lti/toolproxies.php');
99 if (!empty($id)) {
100 $toolproxy = $DB->get_record('lti_tool_proxies', array('id' => $id));
101 switch($toolproxy->state) {
102 case LTI_TOOL_PROXY_STATE_ACCEPTED:
103 $redirect->param('tab', 'tp_accepted');
104 break;
105 case LTI_TOOL_PROXY_STATE_REJECTED:
106 $redirect->param('tab', 'tp_rejected');
107 break;
108 case LTI_TOOL_PROXY_STATE_PENDING:
109 // Change the status to configured.
110 $toolproxy->state = LTI_TOOL_PROXY_STATE_CONFIGURED;
111 lti_update_tool_proxy($toolproxy);
112 }
113 }
114
115 $redirect = $redirect->out();
116
117 if (empty($msg)) {
118 $msg = $err;
119 }
120 redirect($redirect, $msg);
121
122}