diff --git a/admin/tool/cohortroles/settings.php b/admin/tool/cohortroles/settings.php
index <HASH>..<HASH> 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));
+}
MDL-<I> 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.