mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
62 lines
2.1 KiB
TypeScript
62 lines
2.1 KiB
TypeScript
/*
|
|
* cloudbeaver - Cloud Database Manager
|
|
* Copyright (C) 2020 DBeaver Corp and others
|
|
*
|
|
* Licensed under the Apache License, Version 2.0.
|
|
* you may not use this file except in compliance with the License.
|
|
*/
|
|
|
|
import { AdministrationTopAppBarService } from '@cloudbeaver/core-administration';
|
|
import { SettingsMenuService, TopNavService } from '@cloudbeaver/core-app';
|
|
import { AuthInfoService } from '@cloudbeaver/core-authentication';
|
|
import { injectable, Bootstrap } from '@cloudbeaver/core-di';
|
|
import { ServerService } from '@cloudbeaver/core-root';
|
|
|
|
import { AuthenticationService } from './AuthenticationService';
|
|
import { AuthDialogService } from './Dialog/AuthDialogService';
|
|
import { UserInfo } from './UserInfo';
|
|
|
|
@injectable()
|
|
export class AuthMenuService extends Bootstrap {
|
|
constructor(
|
|
private serverService: ServerService,
|
|
private authDialogService: AuthDialogService,
|
|
private authenticationService: AuthenticationService,
|
|
private authInfoService: AuthInfoService,
|
|
private settingsMenuService: SettingsMenuService,
|
|
private topNavService: TopNavService,
|
|
private administrationTopAppBarService: AdministrationTopAppBarService
|
|
) {
|
|
super();
|
|
}
|
|
|
|
register() {
|
|
this.settingsMenuService.addMenuItem(
|
|
SettingsMenuService.settingsMenuToken,
|
|
{
|
|
id: 'login',
|
|
order: 0,
|
|
isHidden: () => !this.serverService.config.data?.authenticationEnabled || !!this.authInfoService.userInfo,
|
|
title: 'authentication_login',
|
|
onClick: () => this.authDialogService.showLoginForm(),
|
|
}
|
|
);
|
|
|
|
this.settingsMenuService.addMenuItem(
|
|
SettingsMenuService.settingsMenuToken,
|
|
{
|
|
id: 'logout',
|
|
order: Number.MAX_SAFE_INTEGER,
|
|
isHidden: () => !this.authInfoService.userInfo,
|
|
title: 'authentication_logout',
|
|
onClick: this.authenticationService.logout.bind(this.authenticationService),
|
|
}
|
|
);
|
|
|
|
this.topNavService.placeholder.add(UserInfo, 4);
|
|
this.administrationTopAppBarService.placeholder.add(UserInfo, 4);
|
|
}
|
|
|
|
load(): void | Promise<void> { }
|
|
}
|