diff --git a/classes/permission.php b/classes/permission.php index 5a77458e..dbd4c3f4 100644 --- a/classes/permission.php +++ b/classes/permission.php @@ -235,7 +235,7 @@ public static function can_view_list(int $userid, ?\context $context = null): bo $context = \context_system::instance(); } if ($context->contextlevel != CONTEXT_SYSTEM && $context->contextlevel != CONTEXT_COURSECAT - && $context->contextlevel != CONTEXT_COURSE) { + && $context->contextlevel != CONTEXT_COURSE && $context->contextlevel != CONTEXT_USER) { return false; } if (class_exists('\\tool_organisation\\organisation')) { diff --git a/lib.php b/lib.php index 36134488..ddccc4dc 100644 --- a/lib.php +++ b/lib.php @@ -112,7 +112,7 @@ function tool_certificate_pluginfile($course, $cm, $context, $filearea, $args, $ */ function tool_certificate_myprofile_navigation(core_user\output\myprofile\tree $tree, $user, $iscurrentuser, $course) { global $USER; - if (permission::can_view_list($user->id)) { + if (permission::can_view_list($user->id, \context_user::instance($user->id))) { if ($USER->id == $user->id) { $link = get_string('mycertificates', 'tool_certificate'); } else { diff --git a/my.php b/my.php index 4d595301..9049296a 100644 --- a/my.php +++ b/my.php @@ -36,7 +36,7 @@ // Check that we have a valid user. $user = \core_user::get_user($userid ?: $USER->id, '*', MUST_EXIST); -if (!\tool_certificate\permission::can_view_list($user->id)) { +if (!\tool_certificate\permission::can_view_list($user->id, \context_user::instance($user->id))) { throw new \required_capability_exception(context_system::instance(), 'tool/certificate:viewallcertificates', 'nopermission', 'error'); }