From df4f869af7cad307d88615fccfa0cf43c937883e Mon Sep 17 00:00:00 2001 From: Simey Lameze Date: Mon, 7 Sep 2020 16:56:23 +0800 Subject: [PATCH] MDL-67494 calendar: shared subscriptions should not set userid to 0 --- calendar/lib.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/calendar/lib.php b/calendar/lib.php index af58bed495d..5c4a25cfa18 100644 --- a/calendar/lib.php +++ b/calendar/lib.php @@ -2820,7 +2820,9 @@ function calendar_add_subscription($sub) { // User events. $sub->courseid = 0; } - $sub->userid = $USER->id; + + // Only subscriptions for user type should store user id, shared events (course,site...) should have userid set to 0. + $sub->userid = ($sub->eventtype == 'user') ? $USER->id : 0; // File subscriptions never update. if (empty($sub->url)) { @@ -2949,7 +2951,7 @@ function calendar_add_icalendar_event($event, $unused = null, $subscriptionid, $ // We should never do anything with an event without a subscription reference. $sub = calendar_get_subscription($subscriptionid); $eventrecord->subscriptionid = $subscriptionid; - $eventrecord->userid = $sub->userid; + $eventrecord->userid = ($sub->eventtype == 'user') ? $sub->userid : 0; $eventrecord->groupid = $sub->groupid; $eventrecord->courseid = $sub->courseid; $eventrecord->categoryid = $sub->categoryid; @@ -3308,6 +3310,8 @@ function calendar_get_calendar_context($subscription) { // Determine context based on calendar type. if ($subscription->eventtype === 'site') { $context = \context_course::instance(SITEID); + } else if ($subscription->eventtype === 'category') { + $context = \context_coursecat::instance($subscription->categoryid); } else if ($subscription->eventtype === 'group' || $subscription->eventtype === 'course') { $context = \context_course::instance($subscription->courseid); } else {