-- ------------------------------------------
-- Friendica 2022.12-dev (Giant Rhubarb)
--- DB_UPDATE_VERSION 1496
+-- DB_UPDATE_VERSION 1497
-- ------------------------------------------
`user`.`language` AS `language`,
`user`.`register_date` AS `register_date`,
`user`.`login_date` AS `login_date`,
+ IF (`user`.`last-activity` IS NULL, DATE(`user`.`login_date`), `user`.`last-activity`) AS `last-activity`,
`user`.`default-location` AS `default-location`,
`user`.`allow_location` AS `allow_location`,
`user`.`theme` AS `theme`,
$contact['url'],
$contact['email'],
Temporal::getRelativeDate($contact['created']),
- Temporal::getRelativeDate($contact['login_date']),
+ Temporal::getRelativeDate($contact['last-activity']),
Temporal::getRelativeDate($contact['last-item']),
]);
}
'nickname',
'email',
'register_date',
- 'login_date',
+ 'last-activity',
'verified',
'blocked',
];
if ($user['last-activity'] != $current_day) {
User::update(['last-activity' => $current_day], $uid);
+ // Set the last actitivy for all identities of the user
+ DBA::update('user', ['last-activity' => $current_day], ['parent-uid' => $uid, 'account_removed' => false]);
}
}
'active_users_weekly' => 0,
];
- $userStmt = DBA::select('owner-view', ['uid', 'login_date', 'last-item'],
- ["`verified` AND `login_date` > ? AND NOT `blocked`
+ $userStmt = DBA::select('owner-view', ['uid', 'last-activity', 'last-item'],
+ ["`verified` AND `last-activity` > ? AND NOT `blocked`
AND NOT `account_removed` AND NOT `account_expired`",
DBA::NULL_DATETIME]);
if (!DBA::isResult($userStmt)) {
while ($user = DBA::fetch($userStmt)) {
$statistics['total_users']++;
- if ((strtotime($user['login_date']) > $halfyear) || (strtotime($user['last-item']) > $halfyear)
+ if ((strtotime($user['last-activity']) > $halfyear) || (strtotime($user['last-item']) > $halfyear)
) {
$statistics['active_users_halfyear']++;
}
- if ((strtotime($user['login_date']) > $month) || (strtotime($user['last-item']) > $month)
+ if ((strtotime($user['last-activity']) > $month) || (strtotime($user['last-item']) > $month)
) {
$statistics['active_users_monthly']++;
}
- if ((strtotime($user['login_date']) > $week) || (strtotime($user['last-item']) > $week)
+ if ((strtotime($user['last-activity']) > $week) || (strtotime($user['last-item']) > $week)
) {
$statistics['active_users_weekly']++;
}
$user['account_type'] = ($user['page_flags_raw'] == 0) ? $account_types[$user['account-type']] : '';
$user['register_date'] = Temporal::getRelativeDate($user['register_date']);
- $user['login_date'] = Temporal::getRelativeDate($user['login_date']);
+ $user['login_date'] = Temporal::getRelativeDate($user['last-activity']);
$user['lastitem_date'] = Temporal::getRelativeDate($user['last-item']);
$user['is_admin'] = in_array($user['email'], $adminlist);
$user['is_deletable'] = !$user['account_removed'] && intval($user['uid']) != $this->session->getLocalUserId();
'name',
'email',
'register_date',
- 'login_date',
+ 'last-activity',
'last-item',
'page-flags',
];
'name',
'email',
'register_date',
- 'login_date',
+ 'last-activity',
'last-item',
'page-flags',
];
'name',
'email',
'register_date',
- 'login_date',
+ 'last-activity',
'last-item',
'page-flags',
];
'name',
'email',
'register_date',
- 'login_date',
+ 'last-activity',
'last-item',
'page-flags',
];
$last_active = strtotime($contact['last-item']);
}
- $condition = ['uid' => $owner['uid']];
- $user = DBA::selectFirst('user', ['login_date'], $condition);
+ $user = User::getOwnerDataById($owner['uid']);
if (DBA::isResult($user)) {
- if ($last_active < strtotime($user['login_date'])) {
- $last_active = strtotime($user['login_date']);
+ if ($last_active < strtotime($user['last-activity'])) {
+ $last_active = strtotime($user['last-activity']);
}
}
$json_info['last-activity'] = date('o-W', $last_active);
$this->dba->update('user', ['last-activity' => DateTimeFormat::utcNow('Y-m-d'), 'login_date' => DateTimeFormat::utcNow()], ['uid' => $user_record['uid']]);
// Set the login date for all identities of the user
- $this->dba->update('user', ['login_date' => DateTimeFormat::utcNow()],
+ $this->dba->update('user', ['last-activity' => DateTimeFormat::utcNow('Y-m-d'), 'login_date' => DateTimeFormat::utcNow()],
['parent-uid' => $user_record['uid'], 'account_removed' => false]);
// Regularly update suggestions
if (!empty($abandon_days)) {
$condition = DBA::mergeConditions($condition,
- ["`uid` != ? AND `uid` IN (SELECT `uid` FROM `user` WHERE NOT `account_expired` AND NOT `account_removed` AND `login_date` > ?)", 0, DateTimeFormat::utc('now - ' . $abandon_days . ' days')]);
+ ["`uid` != ? AND `uid` IN (SELECT `uid` FROM `owner-view` WHERE NOT `account_expired` AND NOT `account_removed` AND `last-activity` > ?)", 0, DateTimeFormat::utc('now - ' . $abandon_days . ' days')]);
} else {
$condition = DBA::mergeConditions($condition,
["`uid` != ? AND `uid` IN (SELECT `uid` FROM `user` WHERE NOT `account_expired` AND NOT `account_removed`)", 0]);
use Friendica\Database\DBA;
if (!defined('DB_UPDATE_VERSION')) {
- define('DB_UPDATE_VERSION', 1496);
+ define('DB_UPDATE_VERSION', 1497);
}
return [
"language" => ["user", "language"],
"register_date" => ["user", "register_date"],
"login_date" => ["user", "login_date"],
+ "last-activity" => "IF (`user`.`last-activity` IS NULL, DATE(`user`.`login_date`), `user`.`last-activity`)",
"default-location" => ["user", "default-location"],
"allow_location" => ["user", "allow_location"],
"theme" => ["user", "theme"],