We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit 6f62aded authored by mattl's avatar mattl

Infinite loop on CLI initiated profile deletion for local users

profile deleting user deleting profile deleting user...
parent 9fdf6474
......@@ -877,6 +877,11 @@ class Profile extends Managed_DataObject
function delete($useWhere=false)
{
// just in case it hadn't been done before... (usually set before adding deluser to queue handling!)
if (!$this->hasRole(Profile_role::DELETED)) {
$this->grantRole(Profile_role::DELETED);
}
$this->_deleteNotices();
$this->_deleteSubscriptions();
$this->_deleteTags();
......
......@@ -598,8 +598,10 @@ class User extends Managed_DataObject
}
try {
$profile = $this->getProfile();
$profile->delete();
if (!$this->hasRole(Profile_role::DELETED)) {
$profile = $this->getProfile();
$profile->delete();
}
} catch (UserNoProfileException $unp) {
common_log(LOG_INFO, "User {$this->nickname} has no profile; continuing deletion.");
}
......
......@@ -74,8 +74,13 @@ class DelUserQueueHandler extends QueueHandler
$qm = QueueManager::get();
$qm->enqueue($user, 'deluser');
} else {
// Out of notices? Let's finish deleting this guy!
$user->delete();
// Out of notices? Let's finish deleting this profile!
try {
$user->getProfile()->delete();
} catch (UserNoProfileException $e) {
// in case a profile didn't exist for some reason, just delete the User directly
$user->delete();
}
common_log(LOG_INFO, "User $user->id $user->nickname deleted.");
return true;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment