fix: use faster method to fetch user count

countUsers: the actual user count reported by the backend.
countSeenUsers: count every user who was logged in once.

1: We should avoid expensive operations (like asking every backend for it's user count) in migrations.
2: The current check is wrong because countUsers returns an array. var_dump([] > 1000) => true ;)

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
This commit is contained in:
Daniel Kesselberg 2023-09-14 11:56:25 +02:00 committed by Daniel
parent e2cfe1deb2
commit efb01db387

View file

@ -49,7 +49,7 @@ class Version1027Date20230504122946 extends SimpleMigrationStep {
* @param array $options
*/
public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void {
if($this->userManager->countUsers() > 1000) {
if($this->userManager->countSeenUsers() > 1000) {
$this->config->setAppValue('dav', 'needs_system_address_book_sync', 'yes');
$output->info('Could not sync system address books during update - too many user records have been found. Please call occ dav:sync-system-addressbook manually.');
return;