X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fuser.php;h=8551cbd2db9896acd0b662d9fea232ac00ecb270;hb=30962faee6e75fc02222e759033f9621983896b0;hp=b69c6d25735f0577b63b93bede591b020e709735;hpb=853ff307303faf861396c4e22dbaa56114366751;p=platal.git diff --git a/classes/user.php b/classes/user.php index b69c6d2..8551cbd 100644 --- a/classes/user.php +++ b/classes/user.php @@ -21,6 +21,15 @@ class User extends PlUser { + const PERM_GROUPS = 'groups'; + const PERM_MAIL = 'mail'; + const PERM_DIRECTORY_AX = 'directory_ax'; + const PERM_DIRECTORY_PRIVATE = 'directory_private'; + const PERM_EDIT_DIRECTORY = 'edit_directory'; + const PERM_FORUMS = 'forums'; + const PERM_LISTS = 'lists'; + const PERM_PAYMENT = 'payment'; + private $_profile_fetched = false; private $_profile = null; @@ -618,13 +627,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 +648,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 +684,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(); } } @@ -732,16 +748,12 @@ class User extends PlUser } // Updates user in following tables. - foreach (array('group_announces', 'payment_transactions', 'log_sessions') as $table) { + foreach (array('group_announces', 'payment_transactions', 'log_sessions', 'group_events') as $table) { XDB::execute('UPDATE ' . $table . ' SET uid = {?} WHERE uid = {?}', $newuser->id(), $this->id()); } - XDB::execute('UPDATE group_events - SET organisateur_uid = {?} - WHERE organisateur_uid = {?}', - $newuser->id(), $this->id()); // Merges user in following tables, ie updates when possible, then deletes remaining occurences of the old user. foreach (array('group_announces_read', 'group_event_participants', 'group_member_sub_requests', 'group_members') as $table) {