MDL-56511 theme_boost: Restore file perms back to 644
[moodle.git] / report / usersessions / lib.php
blob8a29d73b95ac90965e06ab5d5a36d162d4e0d042
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.
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/>.
17 /**
18 * Lib API functions.
20 * @package report_usersessions
21 * @copyright 2014 Totara Learning Solutions Ltd {@link http://www.totaralms.com/}
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 * @author Petr Skoda <petr.skoda@totaralms.com>
26 defined('MOODLE_INTERNAL') || die;
28 /**
29 * This function extends the course navigation with the report items
31 * @param navigation_node $navigation The navigation node to extend
32 * @param stdClass $user
33 * @param stdClass $course The course to object for the report
35 function report_usersessions_extend_navigation_user($navigation, $user, $course) {
36 global $USER;
38 if (isguestuser() or !isloggedin()) {
39 return;
42 if (\core\session\manager::is_loggedinas() or $USER->id != $user->id) {
43 // No peeking at somebody else's sessions!
44 return;
47 $context = context_user::instance($USER->id);
48 if (has_capability('report/usersessions:manageownsessions', $context)) {
49 $navigation->add(get_string('navigationlink', 'report_usersessions'),
50 new moodle_url('/report/usersessions/user.php'), $navigation::TYPE_SETTING);
54 /**
55 * Add nodes to myprofile page.
57 * @param \core_user\output\myprofile\tree $tree Tree object
58 * @param stdClass $user user object
59 * @param bool $iscurrentuser
60 * @param stdClass $course Course object
62 * @return bool
64 function report_usersessions_myprofile_navigation(core_user\output\myprofile\tree $tree, $user, $iscurrentuser, $course) {
65 global $USER;
67 if (isguestuser() or !isloggedin()) {
68 return;
71 if (\core\session\manager::is_loggedinas() or $USER->id != $user->id) {
72 // No peeking at somebody else's sessions!
73 return;
76 $context = context_user::instance($USER->id);
77 if (has_capability('report/usersessions:manageownsessions', $context)) {
78 $node = new core_user\output\myprofile\node('reports', 'usersessions',
79 get_string('navigationlink', 'report_usersessions'), null, new moodle_url('/report/usersessions/user.php'));
80 $tree->add_node($node);
82 return true;