feat(occ): Show first_seen in output of user:list --info

Also format unknown and never in a better way.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
pull/49377/head
Côme Chilliet 2024-12-09 10:27:56 +07:00
parent c4b5a78b7e
commit 1d0962ab33
No known key found for this signature in database
GPG Key ID: A3E2F658B28C760A
2 changed files with 24 additions and 19 deletions

@ -47,22 +47,6 @@ class Info extends Base {
return 1;
}
$groups = $this->groupManager->getUserGroupIds($user);
$firstLogin = $user->getFirstLogin();
$lastLogin = $user->getLastLogin();
if ($firstLogin < 0) {
$firstSeen = 'unknown';
} elseif ($firstLogin === 0) {
$firstSeen = 'never';
} else {
$firstSeen = date(\DateTimeInterface::ATOM, $firstLogin); // ISO-8601
}
if ($lastLogin < 0) {
$lastSeen = 'unknown';
} elseif ($lastLogin === 0) {
$lastSeen = 'never';
} else {
$lastSeen = date(\DateTimeInterface::ATOM, $lastLogin); // ISO-8601
}
$data = [
'user_id' => $user->getUID(),
'display_name' => $user->getDisplayName(),
@ -72,8 +56,8 @@ class Info extends Base {
'groups' => $groups,
'quota' => $user->getQuota(),
'storage' => $this->getStorageInfo($user),
'first_seen' => $firstSeen,
'last_seen' => $lastSeen,
'first_seen' => $this->formatLoginDate($user->getFirstLogin()),
'last_seen' => $this->formatLoginDate($user->getLastLogin()),
'user_directory' => $user->getHome(),
'backend' => $user->getBackendClassName()
];
@ -81,6 +65,16 @@ class Info extends Base {
return 0;
}
private function formatLoginDate(int $timestamp): string {
if ($timestamp < 0) {
return 'unknown';
} elseif ($timestamp === 0) {
return 'never';
} else {
return date(\DateTimeInterface::ATOM, $timestamp); // ISO-8601
}
}
/**
* @param IUser $user
* @return array

@ -83,7 +83,8 @@ class ListCommand extends Base {
'enabled' => $user->isEnabled(),
'groups' => $groups,
'quota' => $user->getQuota(),
'last_seen' => date(\DateTimeInterface::ATOM, $user->getLastLogin()), // ISO-8601
'first_seen' => $this->formatLoginDate($user->getFirstLogin()),
'last_seen' => $this->formatLoginDate($user->getLastLogin()),
'user_directory' => $user->getHome(),
'backend' => $user->getBackendClassName()
];
@ -93,4 +94,14 @@ class ListCommand extends Base {
yield $user->getUID() => $value;
}
}
private function formatLoginDate(int $timestamp): string {
if ($timestamp < 0) {
return 'unknown';
} elseif ($timestamp === 0) {
return 'never';
} else {
return date(\DateTimeInterface::ATOM, $timestamp); // ISO-8601
}
}
}