From 1ccd81326482ef5083ae48726e32a6e15528ca53 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20Mudr=C3=A1k?= Date: Tue, 19 Jan 2016 16:51:23 +0100 Subject: [PATCH] MDL-52831 users: Do not delete Mr. and Mrs. Whitespace accounts Due to imperfect validation of the user registration and profile forms, we allowed for firstname and lastname be just a whitespace. On MySQL, such a whitespace is not significant for VARCHAR comparison so these otherwise valid accounts could be silently deleted. The patch makes sure that at least one of the checked fields is a real empty string before deleting such account. --- lib/classes/task/delete_incomplete_users_task.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/classes/task/delete_incomplete_users_task.php b/lib/classes/task/delete_incomplete_users_task.php index 0fb84b822c0..dda16f7ec66 100644 --- a/lib/classes/task/delete_incomplete_users_task.php +++ b/lib/classes/task/delete_incomplete_users_task.php @@ -59,6 +59,10 @@ class delete_incomplete_users_task extends scheduled_task { if (isguestuser($user) or is_siteadmin($user)) { continue; } + if ($user->lastname !== '' and $user->firstname !== '' and $user->email !== '') { + // This can happen on MySQL - see MDL-52831. + continue; + } delete_user($user); mtrace(" Deleted not fully setup user $user->username ($user->id)"); } -- 2.43.0