mirror of
https://github.com/nextcloud/server.git
synced 2026-02-03 20:41:22 -05:00
Merge 96018b416c into d09b8c99de
This commit is contained in:
commit
2d627e0e01
2 changed files with 105 additions and 1 deletions
|
|
@ -38,6 +38,12 @@ class LastSeen extends Base {
|
|||
InputOption::VALUE_NONE,
|
||||
'shows a list of when all users were last logged in'
|
||||
)
|
||||
->addOption(
|
||||
'exclude-disabled',
|
||||
null,
|
||||
InputOption::VALUE_NONE,
|
||||
'exclude disabled users from the list (only works with --all)'
|
||||
)
|
||||
;
|
||||
}
|
||||
|
||||
|
|
@ -68,7 +74,11 @@ class LastSeen extends Base {
|
|||
return 1;
|
||||
}
|
||||
|
||||
$this->userManager->callForAllUsers(static function (IUser $user) use ($output): void {
|
||||
$excludeDisabled = $input->getOption('exclude-disabled');
|
||||
$this->userManager->callForAllUsers(static function (IUser $user) use ($output, $excludeDisabled): void {
|
||||
if ($excludeDisabled && !$user->isEnabled()) {
|
||||
return;
|
||||
}
|
||||
$lastLogin = $user->getLastLogin();
|
||||
if ($lastLogin === 0) {
|
||||
$output->writeln($user->getUID() . ' has never logged in.');
|
||||
|
|
|
|||
|
|
@ -92,4 +92,98 @@ class LastSeenTest extends TestCase {
|
|||
|
||||
self::invokePrivate($this->command, 'execute', [$this->consoleInput, $this->consoleOutput]);
|
||||
}
|
||||
|
||||
public function testAllUsersWithoutExcludeDisabled(): void {
|
||||
$enabledUser = $this->getMockBuilder(IUser::class)->getMock();
|
||||
$enabledUser->expects($this->once())
|
||||
->method('getLastLogin')
|
||||
->willReturn(time());
|
||||
$enabledUser->expects($this->once())
|
||||
->method('getUID')
|
||||
->willReturn('enabled_user');
|
||||
$enabledUser->expects($this->never())
|
||||
->method('isEnabled');
|
||||
|
||||
$disabledUser = $this->getMockBuilder(IUser::class)->getMock();
|
||||
$disabledUser->expects($this->once())
|
||||
->method('getLastLogin')
|
||||
->willReturn(time());
|
||||
$disabledUser->expects($this->once())
|
||||
->method('getUID')
|
||||
->willReturn('disabled_user');
|
||||
$disabledUser->expects($this->never())
|
||||
->method('isEnabled');
|
||||
|
||||
$this->consoleInput->expects($this->once())
|
||||
->method('getArgument')
|
||||
->with('uid')
|
||||
->willReturn(null);
|
||||
|
||||
$this->consoleInput->expects($this->exactly(2))
|
||||
->method('getOption')
|
||||
->willReturnMap([
|
||||
['all', true],
|
||||
['exclude-disabled', false],
|
||||
]);
|
||||
|
||||
$this->userManager->expects($this->once())
|
||||
->method('callForAllUsers')
|
||||
->willReturnCallback(function ($callback) use ($enabledUser, $disabledUser) {
|
||||
$callback($enabledUser);
|
||||
$callback($disabledUser);
|
||||
});
|
||||
|
||||
$this->consoleOutput->expects($this->exactly(2))
|
||||
->method('writeln')
|
||||
->with($this->stringContains("'s last login:"));
|
||||
|
||||
self::invokePrivate($this->command, 'execute', [$this->consoleInput, $this->consoleOutput]);
|
||||
}
|
||||
|
||||
public function testAllUsersWithExcludeDisabled(): void {
|
||||
$enabledUser = $this->getMockBuilder(IUser::class)->getMock();
|
||||
$enabledUser->expects($this->once())
|
||||
->method('getLastLogin')
|
||||
->willReturn(time());
|
||||
$enabledUser->expects($this->once())
|
||||
->method('getUID')
|
||||
->willReturn('enabled_user');
|
||||
$enabledUser->expects($this->once())
|
||||
->method('isEnabled')
|
||||
->willReturn(true);
|
||||
|
||||
$disabledUser = $this->getMockBuilder(IUser::class)->getMock();
|
||||
$disabledUser->expects($this->never())
|
||||
->method('getLastLogin');
|
||||
$disabledUser->expects($this->never())
|
||||
->method('getUID');
|
||||
$disabledUser->expects($this->once())
|
||||
->method('isEnabled')
|
||||
->willReturn(false);
|
||||
|
||||
$this->consoleInput->expects($this->once())
|
||||
->method('getArgument')
|
||||
->with('uid')
|
||||
->willReturn(null);
|
||||
|
||||
$this->consoleInput->expects($this->exactly(2))
|
||||
->method('getOption')
|
||||
->willReturnMap([
|
||||
['all', true],
|
||||
['exclude-disabled', true],
|
||||
]);
|
||||
|
||||
$this->userManager->expects($this->once())
|
||||
->method('callForAllUsers')
|
||||
->willReturnCallback(function ($callback) use ($enabledUser, $disabledUser) {
|
||||
$callback($enabledUser);
|
||||
$callback($disabledUser);
|
||||
});
|
||||
|
||||
$this->consoleOutput->expects($this->once())
|
||||
->method('writeln')
|
||||
->with($this->stringContains("enabled_user's last login:"));
|
||||
|
||||
self::invokePrivate($this->command, 'execute', [$this->consoleInput, $this->consoleOutput]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue