45741331891a0793eebd633044b66ed9ae27d662
[moodle.git] / user / policy.php
1 <?php
3 // This file is part of Moodle - http://moodle.org/
4 //
5 // Moodle is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // Moodle is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
18 /**
19  * This file is part of the User section Moodle
20  *
21  * @copyright 1999 Martin Dougiamas  http://dougiamas.com
22  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  * @package user
24  */
26 require_once('../config.php');
27 require_once($CFG->libdir.'/filelib.php');
28 require_once($CFG->libdir.'/resourcelib.php');
30 $agree = optional_param('agree', 0, PARAM_BOOL);
32 $PAGE->set_url('/user/policy.php');
34 define('MESSAGE_WINDOW', true);  // This prevents the message window coming up - TODO: this is a hack! (skodak)
36 if (!isloggedin()) {
37     require_login();
38 }
40 if (isguestuser()) {
41     $sitepolicy = $CFG->sitepolicyguest;
42 } else {
43     $sitepolicy = $CFG->sitepolicy;
44 }
46 if (!empty($SESSION->wantsurl)) {
47     $return = $SESSION->wantsurl;
48 } else {
49     $return = $CFG->wwwroot.'/';
50 }
52 if (empty($sitepolicy)) {
53     // nothing to agree to, sorry, hopefully we will not get to infinite loop
54     redirect($return);
55 }
57 if ($agree and confirm_sesskey()) {    // User has agreed
58     if (!isguestuser()) {              // Don't remember guests
59         $DB->set_field('user', 'policyagreed', 1, array('id'=>$USER->id));
60     }
61     $USER->policyagreed = 1;
62     unset($SESSION->wantsurl);
63     redirect($return);
64 }
66 $strpolicyagree = get_string('policyagree');
67 $strpolicyagreement = get_string('policyagreement');
68 $strpolicyagreementclick = get_string('policyagreementclick');
70 $PAGE->set_context(get_context_instance(CONTEXT_SYSTEM));
71 $PAGE->set_title($strpolicyagreement);
72 $PAGE->set_heading($SITE->fullname);
73 $PAGE->navbar->add($strpolicyagreement);
75 echo $OUTPUT->header();
76 echo $OUTPUT->heading($strpolicyagreement);
78 $mimetype = mimeinfo('type', $sitepolicy);
79 if ($mimetype == 'document/unknown') {
80     //fallback for missing index.php, index.html
81     $mimetype = 'text/html';
82 }
84 // we can not use our popups here, because the url may be arbitrary, see MDL-9823
85 $clicktoopen = '<a href="'.$sitepolicy.'" onclick="this.target=\'_blank\'">'.$strpolicyagreementclick.'</a>';
87 echo '<div class="noticebox">';
88 echo resourcelib_embed_general($sitepolicy, $strpolicyagreement, $clicktoopen, $mimetype);
89 echo '</div>';
91 $formcontinue = new single_button(new moodle_url('policy.php', array('agree'=>1)), get_string('yes'));
92 $formcancel = new single_button(new moodle_url($CFG->wwwroot.'/login/logout.php', array('agree'=>0)), get_string('no'));
93 echo $OUTPUT->confirm($strpolicyagree, $formcontinue, $formcancel);
95 echo $OUTPUT->footer();