diff --git a/mod/h5pactivity/db/access.php b/mod/h5pactivity/db/access.php index 459b8485c34..b12d56af9e1 100644 --- a/mod/h5pactivity/db/access.php +++ b/mod/h5pactivity/db/access.php @@ -65,6 +65,6 @@ $capabilities = [ 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ), - 'clonepermissionsfrom' => 'moodle/grade:manage' + 'clonepermissionsfrom' => 'moodle/grade:viewall', ), ]; diff --git a/mod/h5pactivity/tests/behat/attempt_options.feature b/mod/h5pactivity/tests/behat/attempt_options.feature index 652abd9818d..dac37da92ae 100644 --- a/mod/h5pactivity/tests/behat/attempt_options.feature +++ b/mod/h5pactivity/tests/behat/attempt_options.feature @@ -51,8 +51,7 @@ Feature: Attempts review settings. | teacher1 | 1 | 0 | exist | see | not see | not see | see | | teacher1 | 0 | 1 | not exist | see | see | see | not see | | teacher2 | 0 | 1 | not exist | see | see | not see | not see | - # TODO: The non-editing teachers will be able to see attempts when MDL-80028 is fixed. - | teacher2 | 1 | 1 | not exist | see | not see | not see | not see | + | teacher2 | 1 | 1 | exist | see | not see | not see | see | Scenario: View link behaviour Given the following "activity" exists: diff --git a/mod/h5pactivity/tests/local/manager_test.php b/mod/h5pactivity/tests/local/manager_test.php index 95f68146f80..5327a8caf3d 100644 --- a/mod/h5pactivity/tests/local/manager_test.php +++ b/mod/h5pactivity/tests/local/manager_test.php @@ -723,6 +723,9 @@ class manager_test extends \advanced_testcase { $groupthree = $this->getDataGenerator()->create_group(['courseid' => $course->id, 'participation' => 0]); $this->getDataGenerator()->create_group_member(['groupid' => $groupthree->id, 'userid' => $userfour->id]); + // Editing teacher in no group. + $editingteacher = $this->getDataGenerator()->create_and_enrol($course, 'editingteacher'); + $activity = $this->getDataGenerator()->create_module('h5pactivity', ['course' => $course]); $manager = manager::create_from_instance($activity); @@ -732,7 +735,7 @@ class manager_test extends \advanced_testcase { $usersjoin->params); $this->assertEqualsCanonicalizing( - [$teacher->username, $userone->username, $usertwo->username, $userthree->username, $userfour->username], $users); + [$userone->username, $usertwo->username, $userthree->username, $userfour->username], $users); // Switch to teacher, who cannot view all participants. $this->setUser($teacher); @@ -748,7 +751,17 @@ class manager_test extends \advanced_testcase { $users = $DB->get_fieldset_sql("SELECT u.username FROM {user} u {$usersjoin->joins} WHERE {$usersjoin->wheres}", $usersjoin->params); - $this->assertEqualsCanonicalizing([$teacher->username, $userone->username], $users); + $this->assertEqualsCanonicalizing([$userone->username], $users); + + // Switch to editing teacher, who can view all participants. + $this->setUser($editingteacher); + + $usersjoin = $manager->get_active_users_join(true, 0); + $users = $DB->get_fieldset_sql("SELECT u.username FROM {user} u {$usersjoin->joins} WHERE {$usersjoin->wheres}", + $usersjoin->params); + + $this->assertEqualsCanonicalizing( + [$userone->username, $usertwo->username, $userthree->username, $userfour->username], $users); } /**