From: Stéphane Jacob Date: Sat, 4 Sep 2010 09:54:15 +0000 (+0200) Subject: Fixes clear function in accounts. X-Git-Tag: xorg/1.0.1~227 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=c79e28fc7ce2b8a68da060790f96dcc133d5b246;p=platal.git Fixes clear function in accounts. Signed-off-by: Stéphane Jacob --- diff --git a/classes/user.php b/classes/user.php index 6c78ab4..5944a7f 100644 --- a/classes/user.php +++ b/classes/user.php @@ -618,13 +618,15 @@ class User extends PlUser } if ($clearAll) { + global $globals; + $groupIds = XDB::iterator('SELECT asso_id FROM group_members WHERE uid = {?}', $this->id()); while ($groupId = $groupIds->next()) { $group = Group::get($groupId); - if ($group->notif_unsub) { + if (!empty($group) && $group->notif_unsub) { $mailer = new PlMailer('xnetgrp/unsubscription-notif.mail.tpl'); $admins = $group->iterAdmins(); while ($admin = $admins->next()) { @@ -637,17 +639,22 @@ class User extends PlUser } } - $tables = array('account_auth_openid', 'gannounce_read', 'contacts', - 'email_options', 'gemail_send_save', 'emails', - 'forum_innd', 'gforum_profiles', 'forum_subs', - 'gapps_accounts', 'ggapps_nicknames', 'group_announces_read', - 'group_members', 'ggroup_member_sub_requests', 'reminder', 'requests', + $tables = array('account_auth_openid', 'announce_read', 'contacts', + 'email_options', 'email_send_save', 'emails', + 'forum_innd', 'forum_profiles', 'forum_subs', + 'group_announces_read', 'group_members', + 'group_member_sub_requests', 'reminder', 'requests', 'requests_hidden'); - foreach ($tables as $t) { XDB::execute('DELETE FROM ' . $t . ' WHERE uid = {?}', - $this->id()); + $this->id()); + } + + foreach (array('gapps_accounts', 'gapps_nicknames') as $t) { + XDB::execute('DELETE FROM ' . $t . ' + WHERE l_userid = {?}', + $this->id()); } XDB::execute("UPDATE accounts @@ -668,8 +675,8 @@ class User extends PlUser if ($globals->mailstorage->googleapps_domain) { require_once 'googleapps.inc.php'; - if (GoogleAppsAccount::account_status($uid)) { - $account = new GoogleAppsAccount($user); + if (GoogleAppsAccount::account_status($this->id())) { + $account = new GoogleAppsAccount($this); $account->suspend(); } }