-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetenrolmentkey.php
72 lines (65 loc) · 3.29 KB
/
setenrolmentkey.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Functionality to enable enrolment
* with key a.k.a. "setenrolmentkey".
*
* @package block_mmquicklink
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*
*/
require_once(dirname(__FILE__) . '/../../config.php');
require_once($CFG->dirroot . '/my/lib.php');
require_once($CFG->dirroot . '/user/profile/lib.php');
require_once($CFG->dirroot . '/user/lib.php');
require_once($CFG->libdir.'/filelib.php');
require_login();
// Course id & key from url variable.
$courseid = optional_param('courseid', '', PARAM_TEXT);
$enrolmentkey = optional_param('enrolmentkey', '', PARAM_TEXT);
$urltogo = new moodle_url($CFG->wwwroot . "/course/view.php", array('id' => $courseid));
$uniquekey = get_config('mmquicklink', 'config_unique_enrolmentkey');
// Check if user has permission to edit course enrolment methods.
if (has_capability('moodle/course:enrolconfig', context_course::instance($courseid))) {
// Update field to either set or disable enrolment key.
require_once($CFG->dirroot . "/blocks/mmquicklink/classes/block_mmquicklink.php");
if ($enrolmentkey) {
if ($uniquekey === '1') {
if (!$DB->record_exists_sql('SELECT * FROM {enrol} WHERE enrol = ? AND password = ? AND courseid != ?',
array('self', $enrolmentkey, $courseid))) {
$setkey = \block_mmquicklink\mmquicklink::set_enrolmentkey($courseid, $enrolmentkey);
// Redirect user back to course page with proper string.
redirect($urltogo, get_string('password', 'enrol_self') . " " .
strtolower(get_string('saved', 'core_completion')), 5);
} else {
// Redirect user back to course page with errormessage.
redirect($urltogo, get_string('enrolmentkey_reserved', 'block_mmquicklink'), 5,
\core\output\notification::NOTIFY_ERROR);
}
} else {
$setkey = \block_mmquicklink\mmquicklink::set_enrolmentkey($courseid, $enrolmentkey);
// Redirect user back to course page with proper string.
redirect($urltogo, get_string('password', 'enrol_self') . " " . strtolower(get_string('saved', 'core_completion')), 5);
}
} else {
$disablekey = \block_mmquicklink\mmquicklink::set_enrolmentkey($courseid);
// Redirect user back to course page with proper string.
redirect($urltogo, get_string('password', 'enrol_self') . " " . strtolower(get_string('deleted', 'core')), 5);
}
} else {
// Redirect user back to course page with an error message.
redirect($urltogo, get_string('error') . " (" . get_string('manageroles') . ")", 5);
}