X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fuser.php;h=b2a75f065da2fe2354fb43a32e7b09caa4305f35;hb=28c20b86be8b40cecba0d83080879f81c49e07ad;hp=33b4de26a26f335dc24aa53b57a25787a360bfcf;hpb=ab06182d73bdda0d35b4e70822be6e754523772e;p=platal.git diff --git a/classes/user.php b/classes/user.php index 33b4de2..b2a75f0 100644 --- a/classes/user.php +++ b/classes/user.php @@ -379,6 +379,7 @@ class User extends PlUser if (isset($this->last_known_email)) { return; } + // FIXME: We should fetch the last known email as well as the pending registration email (they aren't the same !) $infos = XDB::fetchOneAssoc('SELECT IF (MAX(m.last) > p.relance, MAX(m.last), p.relance) AS last_relance, p.email AS last_known_email FROM register_pending AS p @@ -404,6 +405,20 @@ class User extends PlUser } + /** Format of the emails sent by the site + */ + public function setEmailFormat($format) + { + Platal::assert($format == self::FORMAT_HTML || $format == self::FORMAT_TEXT, + "Invalid email format \"$format\""); + XDB::execute("UPDATE accounts + SET email_format = {?} + WHERE uid = {?}", + $format, $this->uid); + $this->email_format = $format; + } + + /** Get watch informations */ private function fetchWatchData() @@ -554,11 +569,15 @@ class User extends PlUser */ public function clear($clearAll = true) { - XDB::execute('DELETE FROM account_lost_passwords, register_marketing, - register_pending, register_subs, watch_nonins, - watch, watch_promo - WHERE uid = {?}', - $this->id()); + $tables = array('account_lost_passwords', 'register_marketing', + 'register_pending', 'register_subs', 'watch_nonins', + 'watch', 'watch_promo'); + + foreach ($tables as $t) { + XDB::execute('DELETE FROM ' . $t . ' + WHERE uid = {?}', + $this->id()); + } if ($clearAll) { $groupIds = XDB::iterator('SELECT asso_id @@ -580,14 +599,19 @@ class User extends PlUser } } - XDB::execute('DELETE FROM account_auth_openid, announce_read, contacts, - email_options, email_send_save, emails, - forum_innd, forum_profiles, forum_subs, - gapps_accounts, gapps_nicknames, group_announces_read, - group_members, group_member_sub_requests, reminder, requests, - requests_hidden - WHERE uid = {?}', - $this->id()); + $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', + 'requests_hidden'); + + foreach ($tables as $t) { + XDB::execute('DELETE FROM ' . $t . ' + WHERE uid = {?}', + $this->id()); + } + XDB::execute("UPDATE accounts SET registration_date = 0, state = 'pending', password = NULL, weak_password = NULL, token = NULL, is_admin = 0