- private async _openAdminModalsIfNeeded (serverConfig: ServerConfig, user: User) {
- if (user.noWelcomeModal !== true) return this.welcomeModal.show()
-
- if (user.noInstanceConfigWarningModal === true || !serverConfig.signup.allowed) return
-
- this.instanceService.getAbout()
- .subscribe(about => {
- if (
- this.serverConfig.instance.name.toLowerCase() === 'peertube' ||
- !about.instance.terms ||
- !about.instance.administrator ||
- !about.instance.maintenanceLifetime
- ) {
- this.instanceConfigWarningModal.show(about)
- }
- })
+ private openAdminModalsIfNeeded (user: User) {
+ if (this.adminWelcomeModal.shouldOpen(user)) {
+ return this.adminWelcomeModal.show()
+ }
+
+ if (!this.instanceConfigWarningModal.shouldOpenByUser(user)) return
+
+ forkJoin([
+ this.serverService.getConfig().pipe(first()),
+ this.instanceService.getAbout().pipe(first())
+ ]).subscribe(([ config, about ]) => {
+ if (this.instanceConfigWarningModal.shouldOpen(config, about)) {
+ this.instanceConfigWarningModal.show(about)
+ }
+ })
+ }
+
+ private openAccountModalsIfNeeded (user: User) {
+ if (this.accountSetupWarningModal.shouldOpen(user)) {
+ this.accountSetupWarningModal.show(user)
+ }