a.email_format, a.is_admin, a.state, a.type, a.skin,
FIND_IN_SET(\'watch\', a.flags) AS watch, a.comment,
a.weak_password IS NOT NULL AS weak_access,
- a.token IS NOT NULL AS token_access ' . $fields . '
+ a.token IS NOT NULL AS token_access,
+ (e.email IS NULL AND NOT FIND_IN_SET(\'googleapps\', eo.storage)) AND a.state != \'pending\' AS lost
+ ' . $fields . '
FROM accounts AS a
INNER JOIN account_types AS at ON (at.type = a.type)
LEFT JOIN aliases AS af ON (af.id = a.uid AND af.type = \'a_vie\')
LEFT JOIN aliases AS ab ON (ab.id = a.uid AND FIND_IN_SET(\'bestalias\', ab.flags))
+ LEFT JOIN emails AS e ON (e.uid = a.uid AND e.flags = \'active\')
+ LEFT JOIN email_options AS eo ON (eo.uid = a.uid)
' . $joins . '
WHERE a.uid IN (' . implode(', ', $uids) . ')
GROUP BY a.uid');
private $contacts = null;
public function isContact(PlUser &$user)
{
- if ($this->contacts) {
+ if (is_null($this->contacts)) {
$this->contacts = XDB::fetchAllAssoc('contact', 'SELECT *
FROM contacts
WHERE uid = {?}',
}
// Fetch a set of users from a list of UIDs
- public static function getBulkUsersWithUIDs(array $data, $orig = null, $dest = null)
+ public static function getBulkUsersWithUIDs(array $data, $orig = null, $dest = null, $fetchProfile = true)
{
// Fetch the list of uids
if (is_null($orig)) {
}
$fields = self::loadMainFieldsFromUIDs($uids);
$table = array();
+ if ($fetchProfile) {
+ $profiles = Profile::getBulkProfilesWithUIDS($uids);
+ }
while (($list = $fields->next())) {
- $table[$list['uid']] = User::getSilentWithValues(null, $list);
+ $uid = $list['uid'];
+ $user = User::getSilentWithValues(null, $list);
+ if ($fetchProfile) {
+ if (isset($profiles[$uid])) {
+ $user->_profile = $profiles[$uid];
+ }
+ $user->_profile_fetched = true;
+ }
+ $table[$list['uid']] = $user;
}
// Build the result with respect to input order.
}
}
- public static function getBulkUsersFromDB()
+ public static function getBulkUsersFromDB($fetchProfile = true)
{
$args = func_get_args();
$uids = call_user_func_array(array('XDB', 'fetchColumn'), $args);
- return self::getBulkUsersWithUIDs($uids);
+ return self::getBulkUsersWithUIDs($uids, null, null, $fetchProfile);
}
}