From 4961e964d28f5cdb2c96c9ae5aaa1f05acd8be79 Mon Sep 17 00:00:00 2001 From: Mihail Geshoski Date: Wed, 31 Jan 2018 14:50:26 +0800 Subject: [PATCH] MDL-61485 authentication: Add callback 'pre_signup_requests' --- login/lib.php | 14 +++++++++++++- login/signup.php | 5 +++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/login/lib.php b/login/lib.php index 231b7a969ee..8927e03f6be 100644 --- a/login/lib.php +++ b/login/lib.php @@ -381,4 +381,16 @@ function core_login_validate_forgot_password_data($data) { } return $errors; -} \ No newline at end of file +} + +/** + * Plugins can create pre sign up requests. + */ +function core_login_pre_signup_requests() { + $callbacks = get_plugins_with_function('pre_signup_requests'); + foreach ($callbacks as $type => $plugins) { + foreach ($plugins as $plugin => $pluginfunction) { + $pluginfunction(); + } + } +} diff --git a/login/signup.php b/login/signup.php index ee6a140c8c2..4e24aece1b5 100644 --- a/login/signup.php +++ b/login/signup.php @@ -27,6 +27,7 @@ require('../config.php'); require_once($CFG->dirroot . '/user/editlib.php'); require_once($CFG->libdir . '/authlib.php'); +require_once('lib.php'); if (!$authplugin = signup_is_enabled()) { print_error('notlocalisederrormessage', 'error', '', 'Sorry, you may not use this page.'); @@ -59,6 +60,10 @@ if (isloggedin() and !isguestuser()) { exit; } +// Plugins can create pre sign up requests. +// Can be used to force additional actions before sign up such as acceptance of policies, validations, etc. +core_login_pre_signup_requests(); + $mform_signup = $authplugin->signup_form(); if ($mform_signup->is_cancelled()) {