don't count "system" local accounts in user chart - fixes #451

This commit is contained in:
dakkar 2024-05-07 20:17:53 +00:00 committed by Ember
parent e0afeff248
commit 89f4f0e5f4

View File

@ -4,7 +4,7 @@
*/ */
import { Injectable, Inject } from '@nestjs/common'; import { Injectable, Inject } from '@nestjs/common';
import { Not, IsNull, DataSource } from 'typeorm'; import { Not, IsNull, Like, DataSource } from 'typeorm';
import type { MiUser } from '@/models/User.js'; import type { MiUser } from '@/models/User.js';
import { AppLockService } from '@/core/AppLockService.js'; import { AppLockService } from '@/core/AppLockService.js';
import { DI } from '@/di-symbols.js'; import { DI } from '@/di-symbols.js';
@ -37,7 +37,10 @@ export default class UsersChart extends Chart<typeof schema> { // eslint-disable
protected async tickMajor(): Promise<Partial<KVs<typeof schema>>> { protected async tickMajor(): Promise<Partial<KVs<typeof schema>>> {
const [localCount, remoteCount] = await Promise.all([ const [localCount, remoteCount] = await Promise.all([
this.usersRepository.countBy({ host: IsNull() }), // that Not(Like()) is ugly, but it matches the logic in
// packages/backend/src/models/User.ts to not count "system"
// accounts
this.usersRepository.countBy({ host: IsNull(), username: Not(Like('%.%')) }),
this.usersRepository.countBy({ host: Not(IsNull()) }), this.usersRepository.countBy({ host: Not(IsNull()) }),
]); ]);