Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge branch 'MDL-32985_m22' of git://github.com/merrill-oakland/mood…

…le into MOODLE_22_STABLE
  • Loading branch information...
commit 8b01dd9d0f30730d4ee4fc411d1d952ec1cb4a75 2 parents 085adaf + 278fc5d
@stronk7 stronk7 authored
Showing with 17 additions and 7 deletions.
  1. +17 −7 lib/cronlib.php
View
24 lib/cronlib.php
@@ -174,9 +174,8 @@ function cron_run() {
// Send login failures notification - brute force protection in moodle is weak,
// we should at least send notices early in each cron execution
- if (!empty($CFG->notifyloginfailures)) {
- notify_login_failures();
- mtrace(' Notified login failured');
+ if (notify_login_failures()) {
+ mtrace(' Notified login failures');
}
@@ -594,12 +593,23 @@ function cron_bc_hack_plugin_functions($plugintype, $plugins) {
* Note that this function must be only executed from the cron script
* It uses the cache_flags system to store temporary records, deleting them
* by name before finishing
+ *
+ * @return bool True if executed, false if not
*/
function notify_login_failures() {
global $CFG, $DB, $OUTPUT;
+ if (empty($CFG->notifyloginfailures)) {
+ return false;
+ }
+
$recip = get_users_from_config($CFG->notifyloginfailures, 'moodle/site:config');
+ // If it has been less than an hour, or if there are no recipients, don't execute.
+ if (((time() - HOURSECS) < $CFG->lastnotifyfailure) || !is_array($recip) || count($recip) <= 0) {
+ return false;
+ }
+
if (empty($CFG->lastnotifyfailure)) {
$CFG->lastnotifyfailure=0;
}
@@ -676,10 +686,8 @@ function notify_login_failures() {
}
$rs->close();
- // If we haven't run in the last hour and
- // we have something useful to report and we
- // are actually supposed to be reporting to somebody
- if ((time() - HOURSECS) > $CFG->lastnotifyfailure && $count > 0 && is_array($recip) && count($recip) > 0) {
+ // If we have something useful to report.
+ if ($count > 0) {
$site = get_site();
$subject = get_string('notifyloginfailuressubject', '', format_string($site->fullname));
// Calculate the complete body of notification (start + messages + end)
@@ -701,4 +709,6 @@ function notify_login_failures() {
// Finally, delete all the temp records we have created in cache_flags
$DB->delete_records_select('cache_flags', "flagtype IN ('login_failure_by_ip', 'login_failure_by_info')");
+
+ return true;
}
Please sign in to comment.
Something went wrong with that request. Please try again.