MDL-60470 core: New hook 'after_require_login'
authorBrendan Heywood <brendan@catalyst-au.net>
Wed, 18 Oct 2017 05:20:33 +0000 (16:20 +1100)
committerBrendan Heywood <brendan@catalyst-au.net>
Mon, 15 Apr 2019 17:39:20 +0000 (03:39 +1000)
This adds a hook towards the end of the require_login function.

lib/moodlelib.php
lib/upgrade.txt

index 1cc6caa..f3b227f 100644 (file)
@@ -2764,6 +2764,8 @@ function require_login($courseorid = null, $autologinguest = true, $cm = null, $
         $CFG->forceclean = true;
     }
 
+    $afterlogins = get_plugins_with_function('after_require_login', 'lib.php');
+
     // Do not bother admins with any formalities, except for activities pending deletion.
     if (is_siteadmin() && !($cm && $cm->deletioninprogress)) {
         // Set the global $COURSE.
@@ -2778,6 +2780,12 @@ function require_login($courseorid = null, $autologinguest = true, $cm = null, $
         if (!WS_SERVER && !AJAX_SCRIPT) {
             user_accesstime_log($course->id);
         }
+
+        foreach ($afterlogins as $plugintype => $plugins) {
+            foreach ($plugins as $pluginfunction) {
+                $pluginfunction($courseorid, $autologinguest, $cm, $setwantsurltome, $preventredirect);
+            }
+        }
         return;
     }
 
@@ -2995,6 +3003,12 @@ function require_login($courseorid = null, $autologinguest = true, $cm = null, $
         $PAGE->set_course($course);
     }
 
+    foreach ($afterlogins as $plugintype => $plugins) {
+        foreach ($plugins as $pluginfunction) {
+            $pluginfunction($courseorid, $autologinguest, $cm, $setwantsurltome, $preventredirect);
+        }
+    }
+
     // Finally access granted, update lastaccess times.
     // Do not update access time for webservice or ajax requests.
     if (!WS_SERVER && !AJAX_SCRIPT) {
index f1bbece..d0baed6 100644 (file)
@@ -30,6 +30,7 @@ attribute on forms to avoid collisions in forms loaded in AJAX requests.
   in this category. To work with list of courses use API methods in core_course_category and also 'course' form element.
 * It is possible to pass additional conditions to get_courses_search();
   core_course_category::search_courses() now allows to search only among courses with completion enabled.
+* Add support for a new xxx_after_require_login callback
 
 === 3.6 ===