fix(server): don't publicly reveal user count (#4409)

* fix: don't reveal user count publicly

* fix: mobile and user controller

* fix: update other frontend endpoints

* fix: revert openapi change

* chore: open api

* fix: initialize

* openapi

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
This commit is contained in:
Jonathan Jogenfors
2023-10-11 04:37:13 +02:00
committed by GitHub
parent 09bf1c9175
commit 41befc0948
20 changed files with 101 additions and 15 deletions

View File

@@ -18,6 +18,7 @@ export const IUserRepository = 'IUserRepository';
export interface IUserRepository {
get(id: string, withDeleted?: boolean): Promise<UserEntity | null>;
getAdmin(): Promise<UserEntity | null>;
hasAdmin(): Promise<boolean>;
getByEmail(email: string, withPassword?: boolean): Promise<UserEntity | null>;
getByStorageLabel(storageLabel: string): Promise<UserEntity | null>;
getByOAuthId(oauthId: string): Promise<UserEntity | null>;

View File

@@ -85,6 +85,7 @@ export class ServerConfigDto {
mapTileUrl!: string;
@ApiProperty({ type: 'integer' })
trashDays!: number;
isInitialized!: boolean;
}
export class ServerFeaturesDto implements FeatureFlags {

View File

@@ -74,11 +74,14 @@ export class ServerInfoService {
// TODO move to system config
const loginPageMessage = process.env.PUBLIC_LOGIN_PAGE_MESSAGE || '';
const isInitialized = await this.userRepository.hasAdmin();
return {
loginPageMessage,
mapTileUrl: config.map.tileUrl,
trashDays: config.trash.days,
oauthButtonText: config.oauth.buttonText,
isInitialized,
};
}