diff --git a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts index 012d30b68c9..2356c825fc2 100644 --- a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts +++ b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts @@ -367,6 +367,7 @@ describe('EPersonFormComponent', () => { let requireCertificate; let expected; + beforeEach(() => { firstName = 'testName'; lastName = 'testLastName'; @@ -386,11 +387,17 @@ describe('EPersonFormComponent', () => { value: lastName, }, ], + 'eperson.phone': [ + { + value: null, + }, + ], }, email: email, canLogIn: canLogIn, requireCertificate: requireCertificate, }); + spyOn(component.submitForm, 'emit'); component.ngOnInit(); component.firstName.value = firstName; @@ -399,6 +406,7 @@ describe('EPersonFormComponent', () => { component.canLogIn.value = canLogIn; component.requireCertificate.value = requireCertificate; }); + describe('without active EPerson', () => { beforeEach(() => { spyOn(epeopleRegistryServiceStub, 'getActiveEPerson').and.returnValue(of(undefined)); @@ -428,6 +436,11 @@ describe('EPersonFormComponent', () => { value: lastName, }, ], + 'eperson.phone': [ + { + value: null, + }, + ], }, email: email, canLogIn: canLogIn, diff --git a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts index dde99b9ab7d..fabb92310d9 100644 --- a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts +++ b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts @@ -116,6 +116,7 @@ export class EPersonFormComponent implements OnInit, OnDestroy { firstName: DynamicInputModel; lastName: DynamicInputModel; email: DynamicInputModel; + phone: DynamicInputModel; // booleans canLogIn: DynamicCheckboxModel; requireCertificate: DynamicCheckboxModel; @@ -144,6 +145,11 @@ export class EPersonFormComponent implements OnInit, OnDestroy { host: 'row', }, }, + phone: { + grid: { + host: 'row', + }, + }, canLogIn: { grid: { host: 'col col-sm-6 d-inline-block', @@ -318,6 +324,12 @@ export class EPersonFormComponent implements OnInit, OnDestroy { }, hint: this.translateService.instant(`${this.messagePrefix}.emailHint`), }); + this.phone = new DynamicInputModel({ + id: 'phone', + label: this.translateService.instant(`${this.messagePrefix}.phone`), + name: 'phone', + required: false, + }); this.canLogIn = new DynamicCheckboxModel( { id: 'canLogIn', @@ -336,6 +348,7 @@ export class EPersonFormComponent implements OnInit, OnDestroy { this.firstName, this.lastName, this.email, + this.phone, this.canLogIn, this.requireCertificate, ]; @@ -351,6 +364,7 @@ export class EPersonFormComponent implements OnInit, OnDestroy { firstName: eperson != null ? eperson.firstMetadataValue('eperson.firstname') : '', lastName: eperson != null ? eperson.firstMetadataValue('eperson.lastname') : '', email: eperson != null ? eperson.email : '', + phone: eperson != null ? eperson.firstMetadataValue('eperson.phone') : '', canLogIn: eperson != null ? eperson.canLogIn : true, requireCertificate: eperson != null ? eperson.requireCertificate : false, }); @@ -427,6 +441,11 @@ export class EPersonFormComponent implements OnInit, OnDestroy { value: this.lastName.value, }, ], + 'eperson.phone': [ + { + value: this.phone.value, + }, + ], }, email: this.email.value, canLogIn: this.canLogIn.value, @@ -484,6 +503,11 @@ export class EPersonFormComponent implements OnInit, OnDestroy { value: (this.lastName.value ? this.lastName.value : ePerson.firstMetadataValue('eperson.lastname')), }, ], + 'eperson.phone': [ + { + value: this.phone.value, + }, + ], }, email: (hasValue(values.email) ? values.email : ePerson.email), canLogIn: (hasValue(values.canLogIn) ? values.canLogIn : ePerson.canLogIn), diff --git a/src/app/core/auth/auth.service.spec.ts b/src/app/core/auth/auth.service.spec.ts index 4c4efc2f62b..4091b8c1575 100644 --- a/src/app/core/auth/auth.service.spec.ts +++ b/src/app/core/auth/auth.service.spec.ts @@ -316,6 +316,7 @@ describe('AuthService test', () => { mockStore = TestBed.inject(MockStore); authService = TestBed.inject(AuthService); mockStore.overrideSelector(isAuthenticated, true); + mockStore.overrideSelector(getAuthenticationToken, token); mockStore.refreshState(); storage = (authService as any).storage; storage.get = jasmine.createSpy().and.returnValue(null); diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 1bd83d53467..e0d721e0662 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -325,6 +325,8 @@ "admin.access-control.epeople.form.email": "Email", + "admin.access-control.epeople.form.phone": "Phone", + "admin.access-control.epeople.form.emailHint": "Must be a valid email address", "admin.access-control.epeople.form.canLogIn": "Can log in",