-
Notifications
You must be signed in to change notification settings - Fork 5
/
locallib.php
70 lines (64 loc) · 2.42 KB
/
locallib.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
<?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/>.
/**
* Availability cohort - Locallib file
*
* @package availability_cohort
* @copyright 2018 Kathrin Osswald, Ulm University [email protected]
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/**
* Check if a user is a member of given array of cohorts.
* @param int $userid
* @param array $cohorts The ids of the cohorts.
*
* @return boolean
*/
function availability_cohort_is_member($userid, $cohorts) {
global $DB;
if (!empty($cohorts)) {
// Create IN statement for cohorts.
list($in, $params) = $DB->get_in_or_equal($cohorts);
// Add param for userid.
$params[] = $userid;
// Return true if "userid = " . $userid . " AND cohortid IN " . $cohorts.
return $DB->record_exists_select('cohort_members', "cohortid $in AND userid = ?", $params);
} else {
return false;
}
}
/**
* Get all the cohorts defined in given context with all parent contexts.
*
* The function does not check user capability to view/manage cohorts in the given context
* assuming that it has been already verified.
*
* @param \context $currentcontext The current context
*
* @return array Array(totalcohorts => int, cohorts => array, allcohorts => int)
*/
function availability_cohort_cohort_get_cohorts($currentcontext) {
global $DB;
// Add all parent context ids.
$contextids = $currentcontext->get_parent_context_ids();
// Add current contextid.
$contextids[] = $currentcontext->id;
// Make all entries to integer values.
$contextids = array_map('intval', $contextids);
// Get all cohorts for the currentcontext with all parent contexts.
$cohorts = $DB->get_records_list('cohort', 'contextid', $contextids);
return ['cohorts' => $cohorts];
}