From f628e0ecf68b24d4fca37aa609bc1cfdad5b81a2 Mon Sep 17 00:00:00 2001 From: Ankit Agarwal Date: Thu, 26 Jan 2017 14:23:38 +0530 Subject: [PATCH 1/2] MDL-50729 events: Add user constants to events base class --- lib/classes/event/base.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/classes/event/base.php b/lib/classes/event/base.php index 8036019d0d7..27f74c0a20d 100644 --- a/lib/classes/event/base.php +++ b/lib/classes/event/base.php @@ -85,6 +85,16 @@ abstract class base implements \IteratorAggregate { */ const NOT_FOUND = -31338; + /** + * User id to use when the user is not logged in. + */ + const USER_NOTLOGGEDIN = 0; + + /** + * User id to use when actor is not an actual user but system, cli or cron. + */ + const USER_OTHER = -1; + /** @var array event data */ protected $data; From 667784420f54f589e2094f3217f3ea3385b5d096 Mon Sep 17 00:00:00 2001 From: Ankit Agarwal Date: Fri, 13 Jan 2017 23:28:01 +0530 Subject: [PATCH 2/2] MDL-50729 gradelib: Regrade event should be assigned to system --- lib/classes/event/user_graded.php | 12 +++++++++--- lib/grade/grade_category.php | 6 +++--- lib/grade/grade_item.php | 2 +- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/classes/event/user_graded.php b/lib/classes/event/user_graded.php index 98a6a955589..a9371ac9664 100644 --- a/lib/classes/event/user_graded.php +++ b/lib/classes/event/user_graded.php @@ -53,10 +53,12 @@ class user_graded extends base { * Utility method to create new event. * * @param \grade_grade $grade + * @param null|int $userid Id of user responsible for this event. + * * @return user_graded */ - public static function create_from_grade(\grade_grade $grade) { - $event = self::create(array( + public static function create_from_grade(\grade_grade $grade, $userid = null) { + $gradedata = array( 'context' => \context_course::instance($grade->grade_item->courseid), 'objectid' => $grade->id, 'relateduserid' => $grade->userid, @@ -64,7 +66,11 @@ class user_graded extends base { 'itemid' => $grade->itemid, 'overridden' => !empty($grade->overridden), 'finalgrade' => $grade->finalgrade), - )); + ); + if ($userid !== null) { + $gradedata["userid"] = $userid; + } + $event = self::create($gradedata); $event->grade = $grade; return $event; } diff --git a/lib/grade/grade_category.php b/lib/grade/grade_category.php index 96d8a2aac07..768d834f351 100644 --- a/lib/grade/grade_category.php +++ b/lib/grade/grade_category.php @@ -658,7 +658,7 @@ class grade_category extends grade_object { // If successful trigger a user_graded event. if ($success) { - \core\event\user_graded::create_from_grade($grade)->trigger(); + \core\event\user_graded::create_from_grade($grade, \core\event\base::USER_OTHER)->trigger(); } } $dropped = $grade_values; @@ -743,7 +743,7 @@ class grade_category extends grade_object { // If successful trigger a user_graded event. if ($success) { - \core\event\user_graded::create_from_grade($grade)->trigger(); + \core\event\user_graded::create_from_grade($grade, \core\event\base::USER_OTHER)->trigger(); } } $this->set_usedinaggregation($userid, $usedweights, $novalue, $dropped, $extracredit); @@ -786,7 +786,7 @@ class grade_category extends grade_object { // If successful trigger a user_graded event. if ($success) { - \core\event\user_graded::create_from_grade($grade)->trigger(); + \core\event\user_graded::create_from_grade($grade, \core\event\base::USER_OTHER)->trigger(); } } diff --git a/lib/grade/grade_item.php b/lib/grade/grade_item.php index 5553ff180b6..fd77329d572 100644 --- a/lib/grade/grade_item.php +++ b/lib/grade/grade_item.php @@ -775,7 +775,7 @@ class grade_item extends grade_object { // If successful trigger a user_graded event. if ($success) { $grade->load_grade_item(); - \core\event\user_graded::create_from_grade($grade)->trigger(); + \core\event\user_graded::create_from_grade($grade, \core\event\base::USER_OTHER)->trigger(); } else { $result = "Internal error updating final grade"; }