MDL-58768 mod_assign: Add $user param to assign::can_grade

This commit is contained in:
Shamim Rezaie
2018-07-31 16:15:38 +10:00
parent fe1ae23939
commit 6b8b06911b
3 changed files with 11 additions and 2 deletions
+3 -2
View File
@@ -3316,11 +3316,12 @@ class assign {
/**
* Does this user have grade permission for this assignment?
*
* @param int|stdClass $user The object or id of the user who will do the editing (default to current user).
* @return bool
*/
public function can_grade() {
public function can_grade($user = null) {
// Permissions check.
if (!has_capability('mod/assign:grade', $this->context)) {
if (!has_capability('mod/assign:grade', $this->context, $user)) {
return false;
}
+5
View File
@@ -1720,6 +1720,11 @@ class mod_assign_locallib_testcase extends advanced_testcase {
$this->setUser($teacher);
$this->assertEquals(true, $assign->can_grade());
// Test the viewgrades capability for other users.
$this->setUser();
$this->assertTrue($assign->can_grade($teacher->id));
$this->assertFalse($assign->can_grade($student->id));
// Test the viewgrades capability - without mod/assign:grade.
$this->setUser($student);
+3
View File
@@ -5,6 +5,9 @@ This files describes API changes in the assign code.
It encouraged poor unit test design and led to significant performance issues with unit tests. See MDL-55609 for
further information.
=== 3.5.2 ===
* The function can_grade() now has optional $user parameter.
=== 3.5 ===
* Functions assign:get_assign_grading_summary_renderable, assign:can_view_submission, assign:count_submissions_with_status,
assign:count_submissions_need_grading and mod_assign_external::get_submission_status now admit an additional group parameter.