]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Fix bug 1962: deleteuser.php regression when OpenID plugin not enabled
authorBrion Vibber <brion@pobox.com>
Sun, 8 Nov 2009 13:33:22 +0000 (14:33 +0100)
committerBrion Vibber <brion@pobox.com>
Sun, 8 Nov 2009 13:40:30 +0000 (14:40 +0100)
The User_openid data object was explicitly listed as a related field to delete from in User::delete(); this class doesn't exist anymore by default since OpenID was broken out to a plugin.
Added UserDeleteRelated event for plugins to add related tables to delete from at user delete time.

EVENTS.txt
classes/User.php
plugins/OpenID/OpenIDPlugin.php

index 92c41102564c130da00f08114e764aeae1eccf8c..25a51516b4ca7d01cfe042e2c4dd4d8ec5f4bbdb 100644 (file)
@@ -489,3 +489,6 @@ ChangePassword: Handle a password change request
 - $newpassword: the desired new password
 - &$errormsg: set this to an error message if the password could not be changed. If the password was changed, leave this as false
 
+UserDeleteRelated: Specify additional tables to delete entries from when deleting users
+- $user: User object
+- &$related: array of DB_DataObject class names to delete entries on matching user_id.
index 96a64ccb29448cc4b898bc41aa5a4114b8cdf2c8..b0d372be85a7ca485e90a558bc8950e894478f85 100644 (file)
@@ -719,16 +719,18 @@ class User extends Memcached_DataObject
     function delete()
     {
         $profile = $this->getProfile();
-        $profile->delete();
+        if ($profile) {
+            $profile->delete();
+        }
 
         $related = array('Fave',
-                         'User_openid',
                          'Confirm_address',
                          'Remember_me',
                          'Foreign_link',
                          'Invitation',
                          'Notice_inbox',
                          );
+        Event::handle('UserDeleteRelated', array($this, &$related));
 
         foreach ($related as $cls) {
             $inst = new $cls();
index 2309eea9df9ae5d24728769c30e975a620f43e8e..e4aed2ddbe505c719e6295ef12e96fcd823a289c 100644 (file)
@@ -298,4 +298,10 @@ class OpenIDPlugin extends Plugin
                                    new ColumnDef('modified', 'timestamp')));
         return true;
     }
+
+    function onUserDeleteRelated($user, &$tables)
+    {
+        $tables[] = 'User_openid';
+        return true;
+    }
 }