Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

MDL-36943 Do not notify about already installed updates

Before this patch, the available_update_checker::cron_notifications()
method accessed the availableupdates property. But for plugins, that property
basically contains the most recent version available. So we were missing
the check against the actual version installed.

The fix was simple - obtain available updates via the available_updates()
method that performs the check.
  • Loading branch information...
commit acade5443f4c160b1292d2d94869c770e221d224 1 parent 113105b
@mudrd8mz mudrd8mz authored stronk7 committed
Showing with 11 additions and 8 deletions.
  1. +11 −8 lib/pluginlib.php
View
19 lib/pluginlib.php
@@ -1254,15 +1254,18 @@ protected function cron_notifications(array $changes) {
// $componentupdate is a real update with higher version
$notifications[] = $componentupdate;
} else {
- // use the plugin_manager to check if the reported $componentchange
- // is a real update with higher version. such a real update must be
- // present in the 'availableupdates' property of one of the component's
- // available_update_info object
+ // Use the plugin_manager to check if the detected $componentchange
+ // is a real update with higher version. That is, the $componentchange
+ // is present in the array of {@link available_update_info} objects
+ // returned by the plugin's available_updates() method.
list($plugintype, $pluginname) = normalize_component($component);
- if (!empty($plugins[$plugintype][$pluginname]->availableupdates)) {
- foreach ($plugins[$plugintype][$pluginname]->availableupdates as $availableupdate) {
- if ($availableupdate->version == $componentchange['version']) {
- $notifications[] = $componentupdate;
+ if (!empty($plugins[$plugintype][$pluginname])) {
+ $availableupdates = $plugins[$plugintype][$pluginname]->available_updates();
+ if (!empty($availableupdates)) {
+ foreach ($availableupdates as $availableupdate) {
+ if ($availableupdate->version == $componentchange['version']) {
+ $notifications[] = $componentupdate;
+ }
}
}
}
Please sign in to comment.
Something went wrong with that request. Please try again.