diff --git a/src/app/core/data/feature-authorization/feature-id.ts b/src/app/core/data/feature-authorization/feature-id.ts
index 8fef45a953..bd1f65b72d 100644
--- a/src/app/core/data/feature-authorization/feature-id.ts
+++ b/src/app/core/data/feature-authorization/feature-id.ts
@@ -34,4 +34,5 @@ export enum FeatureID {
CanEditItem = 'canEditItem',
CanRegisterDOI = 'canRegisterDOI',
CanSubscribe = 'canSubscribeDso',
+ EPersonForgotPassword = 'epersonForgotPassword',
}
diff --git a/src/app/shared/log-in/methods/password/log-in-password.component.html b/src/app/shared/log-in/methods/password/log-in-password.component.html
index 60477d141d..52f28e7190 100644
--- a/src/app/shared/log-in/methods/password/log-in-password.component.html
+++ b/src/app/shared/log-in/methods/password/log-in-password.component.html
@@ -29,11 +29,11 @@
[disabled]="!form.valid"> {{"login.form.submit" | translate}}
-
+
+
+
diff --git a/src/app/shared/log-in/methods/password/log-in-password.component.ts b/src/app/shared/log-in/methods/password/log-in-password.component.ts
index 6132394019..1f96c4c0d8 100644
--- a/src/app/shared/log-in/methods/password/log-in-password.component.ts
+++ b/src/app/shared/log-in/methods/password/log-in-password.component.ts
@@ -1,9 +1,9 @@
-import { map } from 'rxjs/operators';
+import { combineLatest, Observable, shareReplay } from 'rxjs';
+import { filter, map } from 'rxjs/operators';
import { Component, Inject, OnInit } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { select, Store } from '@ngrx/store';
-import { Observable } from 'rxjs';
import { AuthenticateAction, ResetAuthenticationMessagesAction } from '../../../../core/auth/auth.actions';
import { getAuthenticationError, getAuthenticationInfo, } from '../../../../core/auth/selectors';
@@ -73,6 +73,17 @@ export class LogInPasswordComponent implements OnInit {
*/
public canRegister$: Observable;
+ /**
+ * Whether or not the current user (or anonymous) is authorized to register an account
+ */
+ canForgot$: Observable;
+
+ /**
+ * Shows the divider only if contains at least one link to show
+ */
+ canShowDivider$: Observable;
+
+
constructor(
@Inject('authMethodProvider') public injectedAuthMethodModel: AuthMethod,
@Inject('isStandalonePage') public isStandalonePage: boolean,
@@ -114,8 +125,15 @@ export class LogInPasswordComponent implements OnInit {
return message;
})
);
-
- this.canRegister$ = this.authorizationService.isAuthorized(FeatureID.EPersonRegistration);
+
+ this.canRegister$ = this.authorizationService.isAuthorized(FeatureID.EPersonRegistration).pipe(shareReplay(1));
+ this.canForgot$ = this.authorizationService.isAuthorized(FeatureID.EPersonForgotPassword).pipe(shareReplay(1));
+ this.canShowDivider$ =
+ combineLatest([this.canRegister$, this.canForgot$])
+ .pipe(
+ map(([canRegister, canForgot]) => canRegister || canForgot),
+ filter(Boolean)
+ );
}
getRegisterRoute() {