From 5ecbc5d9f79204d2df74073aeed948a60f097646 Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Wed, 29 May 2019 11:53:13 +0200 Subject: [PATCH] MDL-65782 roles: allow several roles with user/frontpage archetype --- admin/settings/frontpage.php | 2 +- admin/tool/lp/tests/externallib_test.php | 6 ++---- cohort/tests/externallib_test.php | 5 ++--- competency/tests/external_test.php | 6 ++---- competency/tests/privacy_test.php | 2 +- 5 files changed, 8 insertions(+), 13 deletions(-) diff --git a/admin/settings/frontpage.php b/admin/settings/frontpage.php index d435022d1c5..3eed171e400 100644 --- a/admin/settings/frontpage.php +++ b/admin/settings/frontpage.php @@ -58,7 +58,7 @@ if (!during_initial_install()) { //do not use during installation foreach ($roles as $role) { if (empty($role->archetype) or $role->archetype === 'guest' or $role->archetype === 'frontpage' or $role->archetype === 'student') { $options[$role->id] = $role->localname; - if ($role->archetype === 'frontpage') { + if ($role->archetype === 'frontpage' && !$defaultfrontpageroleid) { $defaultfrontpageroleid = $role->id; } } diff --git a/admin/tool/lp/tests/externallib_test.php b/admin/tool/lp/tests/externallib_test.php index 450570aa349..8511c842f2b 100644 --- a/admin/tool/lp/tests/externallib_test.php +++ b/admin/tool/lp/tests/externallib_test.php @@ -76,7 +76,7 @@ class tool_lp_external_testcase extends externallib_advanced_testcase { * Setup function- we will create a course and add an assign instance to it. */ protected function setUp() { - global $DB; + global $DB, $CFG; $this->resetAfterTest(true); @@ -91,9 +91,7 @@ class tool_lp_external_testcase extends externallib_advanced_testcase { $catcontext = context_coursecat::instance($category->id); // Fetching default authenticated user role. - $userroles = get_archetype_roles('user'); - $this->assertCount(1, $userroles); - $authrole = array_pop($userroles); + $authrole = $DB->get_record('role', array('id' => $CFG->defaultuserroleid)); // Reset all default authenticated users permissions. unassign_capability('moodle/competency:competencygrade', $authrole->id); diff --git a/cohort/tests/externallib_test.php b/cohort/tests/externallib_test.php index b8fd082a257..f5cdd7987f2 100644 --- a/cohort/tests/externallib_test.php +++ b/cohort/tests/externallib_test.php @@ -522,6 +522,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase { * Search cohorts. */ public function test_search_cohorts() { + global $DB, $CFG; $this->resetAfterTest(true); $creator = $this->getDataGenerator()->create_user(); @@ -537,9 +538,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase { $coursecontext = context_course::instance($course->id); // Fetching default authenticated user role. - $userroles = get_archetype_roles('user'); - $this->assertCount(1, $userroles); - $authrole = array_pop($userroles); + $authrole = $DB->get_record('role', array('id' => $CFG->defaultuserroleid)); // Reset all default authenticated users permissions. unassign_capability('moodle/cohort:manage', $authrole->id); diff --git a/competency/tests/external_test.php b/competency/tests/external_test.php index 4c835413ac0..1d72b05410a 100644 --- a/competency/tests/external_test.php +++ b/competency/tests/external_test.php @@ -97,7 +97,7 @@ class core_competency_external_testcase extends externallib_advanced_testcase { * Setup function- we will create a course and add an assign instance to it. */ protected function setUp() { - global $DB; + global $DB, $CFG; $this->resetAfterTest(true); @@ -114,9 +114,7 @@ class core_competency_external_testcase extends externallib_advanced_testcase { $othercatcontext = context_coursecat::instance($othercategory->id); // Fetching default authenticated user role. - $userroles = get_archetype_roles('user'); - $this->assertCount(1, $userroles); - $authrole = array_pop($userroles); + $authrole = $DB->get_record('role', array('id' => $CFG->defaultuserroleid)); // Reset all default authenticated users permissions. unassign_capability('moodle/competency:competencygrade', $authrole->id); diff --git a/competency/tests/privacy_test.php b/competency/tests/privacy_test.php index 05c463e42a4..77c5a5a45ce 100644 --- a/competency/tests/privacy_test.php +++ b/competency/tests/privacy_test.php @@ -2576,7 +2576,7 @@ class core_competency_privacy_testcase extends provider_testcase { */ protected function allow_anyone_to_comment_anywhere() { global $DB; - $roleid = $DB->get_field('role', 'id', ['archetype' => 'user'], MUST_EXIST); + $roleid = $DB->get_field('role', 'id', ['shortname' => 'user'], MUST_EXIST); assign_capability('moodle/competency:plancomment', CAP_ALLOW, $roleid, SYSCONTEXTID, true); assign_capability('moodle/competency:planmanage', CAP_ALLOW, $roleid, SYSCONTEXTID, true); assign_capability('moodle/competency:planmanagedraft', CAP_ALLOW, $roleid, SYSCONTEXTID, true);