Commit | Line | Data |
---|---|---|
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 | ||
26 | require_once('../../config.php'); | |
27 | require_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 | 35 | require_sesskey(); |
e3f69b58 | 36 | require_login(0, false); |
37 | ||
38 | $systemcontext = context_system::instance(); | |
39 | require_capability('moodle/site:config', $systemcontext); | |
40 | ||
41 | if (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[ | |
65 | top.location.href = '{$redirect}'; | |
66 | //]] | |
67 | </script> | |
68 | </head> | |
69 | <body> | |
70 | <noscript> | |
71 | {$clickhere} | |
72 | </noscript> | |
73 | </body> | |
74 | </html> | |
75 | EOD; | |
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 | } |