From 782fc43bd8806028883f366daf64c01f159d20bb Mon Sep 17 00:00:00 2001 From: Jun Pataleta Date: Thu, 28 Apr 2016 16:41:38 +0800 Subject: [PATCH] MDL-53943 tool_cohortroles: Require 'moodle/cohort:view' capability tool_cohortroles not just needs the 'moodle/role:manage' capability, but the 'moodle/cohort:view' capability as well since the cohorts selector field will not work without it. --- admin/tool/cohortroles/settings.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/admin/tool/cohortroles/settings.php b/admin/tool/cohortroles/settings.php index 98613c15042..f752a832aba 100644 --- a/admin/tool/cohortroles/settings.php +++ b/admin/tool/cohortroles/settings.php @@ -23,5 +23,19 @@ */ defined('MOODLE_INTERNAL') || die; -$str = get_string('managecohortroles', 'tool_cohortroles'); -$ADMIN->add('roles', new admin_externalpage('toolcohortroles', $str, '/admin/tool/cohortroles/index.php', 'moodle/role:manage')); + +// This tool's required capabilities. +$capabilities = [ + 'moodle/cohort:view', + 'moodle/role:manage' +]; + +// Check if the user has all of the required capabilities. +$context = context_system::instance(); +$hasaccess = has_all_capabilities($capabilities, $context); + +// Add this admin page only if the user has all of the required capabilities. +if ($hasaccess) { + $str = get_string('managecohortroles', 'tool_cohortroles'); + $ADMIN->add('roles', new admin_externalpage('toolcohortroles', $str, '/admin/tool/cohortroles/index.php', $capabilities)); +}