MDL-59741 auth: Always check the type of iconurls
authorJuan Leyva <juanleyvadelgado@gmail.com>
Mon, 7 Aug 2017 08:58:37 +0000 (10:58 +0200)
committerJuan Leyva <juanleyvadelgado@gmail.com>
Mon, 7 Aug 2017 08:58:37 +0000 (10:58 +0200)
We need to check always if iconurl is an instance of moodle_url to
avoid Web Services returning iconurls from identity providers to fail.

lib/authlib.php

index 657f887..4af4bcb 100644 (file)
@@ -651,10 +651,10 @@ class auth_plugin_base {
         $data = [];
         foreach ($identityproviders as $idp) {
             if (!empty($idp['icon'])) {
-                // Pre-3.3 auth plugins provide icon as a pix_icon instance.
+                // Pre-3.3 auth plugins provide icon as a pix_icon instance. New auth plugins (since 3.3) provide iconurl.
                 $idp['iconurl'] = $output->image_url($idp['icon']->pix, $idp['icon']->component);
-            } else if ($idp['iconurl'] instanceof moodle_url) {
-                // New auth plugins (since 3.3) provide iconurl.
+            }
+            if ($idp['iconurl'] instanceof moodle_url) {
                 $idp['iconurl'] = $idp['iconurl']->out(false);
             }
             unset($idp['icon']);