X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fuser.php;h=10e131c7d41202db5a5355f09103f503e0e78b2e;hb=fda78a6777a5f385537fc9f291afb310e12525e5;hp=eb3c855514fb839760d447a96bf7c0e326a8cc56;hpb=173ff0bdf41db90ee0995e0c3bf844bf2151d0e6;p=platal.git diff --git a/classes/user.php b/classes/user.php index eb3c855..10e131c 100644 --- a/classes/user.php +++ b/classes/user.php @@ -1,6 +1,6 @@ numRows()) { return $res->fetchOneCell(); } @@ -170,7 +170,7 @@ class User extends PlUser FIND_IN_SET(\'watch\', a.flags) AS watch, a.comment, a.weak_password IS NOT NULL AS weak_access, g.g_account_name IS NOT NULL AS googleapps, a.token IS NOT NULL AS token_access, a.token, a.last_version, - UNIX_TIMESTAMP(s.start) AS lastlogin, s.host, UNIX_TIMESTAMP(fp.last_seen) AS banana_last + s.start AS lastlogin, s.host, fp.last_seen AS banana_last ' . $fields . ' FROM accounts AS a INNER JOIN account_types AS at ON (at.type = a.type) @@ -306,7 +306,7 @@ class User extends PlUser public function firstName() { if (!$this->hasProfile()) { - return $this->displayName(); + return $this->firstname; } return $this->profile()->firstName(); } @@ -314,7 +314,7 @@ class User extends PlUser public function lastName() { if (!$this->hasProfile()) { - return ''; + return $this->lastname; } return $this->profile()->lastName(); } @@ -363,12 +363,18 @@ class User extends PlUser if (!$this->_profile_fetched || $forceFetch) { $this->_profile_fetched = true; $this->_profile = Profile::get($this, $fields, $visibility); - } else if ($this->_profile !== null && !$this->_profile->visibility->equals($visibility)) { + } else if ($this->_profile !== null && $visibility !== null && !$this->_profile->visibility->equals($visibility)) { return Profile::get($this, $fields, $visibility); } return $this->_profile; } + public function setPrefetchedProfile(Profile $profile) + { + $this->_profile_fetched = true; + $this->_profile = $profile; + } + /** Return true if the user has an associated profile. */ public function hasProfile() @@ -568,6 +574,10 @@ class User extends PlUser $watch['watch_promos'] = XDB::fetchColumn('SELECT promo FROM watch_promo WHERE uid = {?}', $this->id()); + $watch['watch_groups'] = XDB::fetchColumn("SELECT w.groupid + FROM watch_group AS w + INNER JOIN groups AS g ON (w.groupid = g.id AND NOT FIND_IN_SET('private', pub)) + WHERE w.uid = {?}", $this->id()); $watch['watch_users'] = XDB::fetchColumn('SELECT ni_id FROM watch_nonins WHERE uid = {?}', $this->id()); @@ -598,6 +608,12 @@ class User extends PlUser return $this->watch_promos; } + public function watchGroups() + { + $this->fetchWatchData(); + return $this->watch_groups; + } + public function watchUsers() { $this->fetchWatchData(); @@ -616,6 +632,7 @@ class User extends PlUser unset($this->watch_users); unset($this->watch_last); unset($this->watch_promos); + unset($this->watch_groups); } @@ -708,7 +725,7 @@ class User extends PlUser /** * Clears a user. * *always deletes in: account_lost_passwords, register_marketing, - * register_pending, register_subs, watch_nonins, watch, watch_promo + * register_pending, register_subs, watch_nonins, watch, watch_promo, watch_group, * *always keeps in: account_types, accounts, email_virtual, carvas, * group_members, homonyms_list, newsletter_ins, register_mstats, email_source_account * *deletes if $clearAll: account_auth_openid, announce_read, contacts, @@ -728,7 +745,7 @@ class User extends PlUser { $tables = array('account_lost_passwords', 'register_marketing', 'register_pending', 'register_subs', 'watch_nonins', - 'watch', 'watch_promo'); + 'watch', 'watch_promo', 'watch_group'); foreach ($tables as $t) { XDB::execute('DELETE FROM ' . $t . ' @@ -1090,5 +1107,5 @@ class UserIterator implements PlIterator } } -// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8: ?>