+ super()
+ }
+
+ get signupAllowed () {
+ return this.serverConfig.signup.allowed === true
+ }
+
+ isEmailDisabled () {
+ return this.serverConfig.email.enabled === false
+ }
+
+ ngOnInit () {
+ const snapshot = this.route.snapshot
+
+ this.serverConfig = snapshot.data.serverConfig
+
+ if (snapshot.queryParams.externalAuthToken) {
+ this.loadExternalAuthToken(snapshot.queryParams.username, snapshot.queryParams.externalAuthToken)
+ return
+ }
+
+ if (snapshot.queryParams.externalAuthError) {
+ this.externalAuthError = true
+ return
+ }
+
+ this.buildForm({
+ username: this.loginValidatorsService.LOGIN_USERNAME,
+ password: this.loginValidatorsService.LOGIN_PASSWORD
+ })
+ }
+
+ ngAfterViewInit () {
+ if (this.usernameInput) {
+ this.usernameInput.nativeElement.focus()
+ }
+
+ this.hooks.runAction('action:login.init', 'login')
+ }
+
+ getExternalLogins () {
+ return this.serverConfig.plugin.registeredExternalAuths
+ }
+
+ getAuthHref (auth: RegisteredExternalAuthConfig) {
+ return environment.apiUrl + `/plugins/${auth.name}/${auth.version}/auth/${auth.authName}`