Tweak mediawiki to handle NULL in email fields
authorMagnus Hagander <magnus@hagander.net>
Wed, 12 Aug 2020 10:45:33 +0000 (12:45 +0200)
committerMagnus Hagander <magnus@hagander.net>
Wed, 12 Aug 2020 10:45:33 +0000 (12:45 +0200)
It really shouldn't exist, but we clearly have cases where the community
auth plugin sets the email to NULL, so we need to handle that case when
looking for what to update.

tools/communityauth/sample/pushreceiver/plugins/mediawiki.py

index a3fdf97ce66bf018dcdd2eded68598e6d0748a4b..7f75d73e482afd88ee98c976e7b60b0f1620504a 100644 (file)
@@ -26,7 +26,7 @@ class ReceiverPlugin:
 
     def push_user(self, user):
         # Update the user if it has changed, ignore it if it's not present
-        self.curs.execute("UPDATE {}.mwuser SET user_real_name=%(realname)s, user_email=%(email)s WHERE user_name=%(username)s AND (user_real_name != %(realname)s OR user_email != %(email)s)".format(self.schema), {
+        self.curs.execute("UPDATE {}.mwuser SET user_real_name=%(realname)s, user_email=%(email)s WHERE user_name=%(username)s AND (user_real_name, user_email) IS DISTINCT FROM (%(realname)s, %(email)s)".format(self.schema), {
             'realname': user['firstname'] + ' ' + user['lastname'],
             'email': user['email'],
             'username': user['username'].capitalize(),