Merge branch 'MDL-80028-h5p_caps' of https://github.com/leonstr/moodle

This commit is contained in:
Andrew Nicols 2024-04-05 11:55:54 +08:00
commit 554e491b6f
No known key found for this signature in database
GPG Key ID: 6D1E3157C8CFBF14
3 changed files with 17 additions and 5 deletions

View File

@ -65,6 +65,6 @@ $capabilities = [
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW
),
'clonepermissionsfrom' => 'moodle/grade:manage'
'clonepermissionsfrom' => 'moodle/grade:viewall',
),
];

View File

@ -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:

View File

@ -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);
}
/**