mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
Merge branch 'w2p-97298_issue-3281_self-register-issue-7.2' into w2p-97298_issue-3281_self-register-issue-main
# Conflicts: # src/app/core/data/eperson-registration.service.spec.ts # src/app/core/data/eperson-registration.service.ts # src/app/register-email-form/register-email-form.component.spec.ts # src/app/register-email-form/register-email-form.component.ts
This commit is contained in:
@@ -14,7 +14,7 @@ import { RemoteData } from './remote-data';
|
|||||||
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
|
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
|
||||||
import { HttpOptions } from '../dspace-rest/dspace-rest.service';
|
import { HttpOptions } from '../dspace-rest/dspace-rest.service';
|
||||||
import { HttpHeaders } from '@angular/common/http';
|
import { HttpHeaders } from '@angular/common/http';
|
||||||
import {HttpParams} from '@angular/common/http';
|
import { HttpParams } from '@angular/common/http';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root',
|
providedIn: 'root',
|
||||||
@@ -70,7 +70,10 @@ export class EpersonRegistrationService {
|
|||||||
headers = headers.append('x-recaptcha-token', captchaToken);
|
headers = headers.append('x-recaptcha-token', captchaToken);
|
||||||
}
|
}
|
||||||
options.headers = headers;
|
options.headers = headers;
|
||||||
options.params = type ? new HttpParams({fromString:'type=' + type}) : new HttpParams();
|
|
||||||
|
if (hasValue(type)) {
|
||||||
|
options.params = type ? new HttpParams({ fromString: 'type=' + type }) : new HttpParams();
|
||||||
|
}
|
||||||
|
|
||||||
href$.pipe(
|
href$.pipe(
|
||||||
find((href: string) => hasValue(href)),
|
find((href: string) => hasValue(href)),
|
||||||
|
@@ -1,3 +1,3 @@
|
|||||||
<ds-register-email-form
|
<ds-register-email-form
|
||||||
[MESSAGE_PREFIX]="'forgot-email.form'">
|
[MESSAGE_PREFIX]="'forgot-email.form'" [typeRequest]="'forgot'">
|
||||||
</ds-register-email-form>
|
</ds-register-email-form>
|
||||||
|
@@ -19,7 +19,7 @@ import { GoogleRecaptchaService } from '../core/google-recaptcha/google-recaptch
|
|||||||
import { CookieService } from '../core/services/cookie.service';
|
import { CookieService } from '../core/services/cookie.service';
|
||||||
import { CookieServiceMock } from '../shared/mocks/cookie.service.mock';
|
import { CookieServiceMock } from '../shared/mocks/cookie.service.mock';
|
||||||
|
|
||||||
describe('RegisterEmailComponent', () => {
|
describe('RegisterEmailFormComponent', () => {
|
||||||
|
|
||||||
let comp: RegisterEmailFormComponent;
|
let comp: RegisterEmailFormComponent;
|
||||||
let fixture: ComponentFixture<RegisterEmailFormComponent>;
|
let fixture: ComponentFixture<RegisterEmailFormComponent>;
|
||||||
@@ -105,7 +105,7 @@ describe('RegisterEmailComponent', () => {
|
|||||||
comp.form.patchValue({email: 'valid@email.org'});
|
comp.form.patchValue({email: 'valid@email.org'});
|
||||||
|
|
||||||
comp.register();
|
comp.register();
|
||||||
expect(epersonRegistrationService.registerEmail).toHaveBeenCalledWith('valid@email.org');
|
expect(epersonRegistrationService.registerEmail).toHaveBeenCalledWith('valid@email.org', null, null);
|
||||||
expect(notificationsService.success).toHaveBeenCalled();
|
expect(notificationsService.success).toHaveBeenCalled();
|
||||||
expect(router.navigate).toHaveBeenCalledWith(['/home']);
|
expect(router.navigate).toHaveBeenCalledWith(['/home']);
|
||||||
});
|
});
|
||||||
@@ -115,7 +115,7 @@ describe('RegisterEmailComponent', () => {
|
|||||||
comp.form.patchValue({email: 'valid@email.org'});
|
comp.form.patchValue({email: 'valid@email.org'});
|
||||||
|
|
||||||
comp.register();
|
comp.register();
|
||||||
expect(epersonRegistrationService.registerEmail).toHaveBeenCalledWith('valid@email.org');
|
expect(epersonRegistrationService.registerEmail).toHaveBeenCalledWith('valid@email.org', null, null);
|
||||||
expect(notificationsService.error).toHaveBeenCalled();
|
expect(notificationsService.error).toHaveBeenCalled();
|
||||||
expect(router.navigate).not.toHaveBeenCalled();
|
expect(router.navigate).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
@@ -133,7 +133,7 @@ describe('RegisterEmailComponent', () => {
|
|||||||
comp.form.patchValue({email: 'valid@email.org'});
|
comp.form.patchValue({email: 'valid@email.org'});
|
||||||
comp.register();
|
comp.register();
|
||||||
tick();
|
tick();
|
||||||
expect(epersonRegistrationService.registerEmail).toHaveBeenCalledWith('valid@email.org', 'googleRecaptchaToken');
|
expect(epersonRegistrationService.registerEmail).toHaveBeenCalledWith('valid@email.org', 'googleRecaptchaToken', null);
|
||||||
expect(notificationsService.success).toHaveBeenCalled();
|
expect(notificationsService.success).toHaveBeenCalled();
|
||||||
expect(router.navigate).toHaveBeenCalledWith(['/home']);
|
expect(router.navigate).toHaveBeenCalledWith(['/home']);
|
||||||
}));
|
}));
|
||||||
@@ -144,7 +144,7 @@ describe('RegisterEmailComponent', () => {
|
|||||||
|
|
||||||
comp.register();
|
comp.register();
|
||||||
tick();
|
tick();
|
||||||
expect(epersonRegistrationService.registerEmail).toHaveBeenCalledWith('valid@email.org', 'googleRecaptchaToken');
|
expect(epersonRegistrationService.registerEmail).toHaveBeenCalledWith('valid@email.org', 'googleRecaptchaToken', null);
|
||||||
expect(notificationsService.error).toHaveBeenCalled();
|
expect(notificationsService.error).toHaveBeenCalled();
|
||||||
expect(router.navigate).not.toHaveBeenCalled();
|
expect(router.navigate).not.toHaveBeenCalled();
|
||||||
}));
|
}));
|
||||||
|
@@ -37,6 +37,12 @@ export class RegisterEmailFormComponent implements OnInit {
|
|||||||
@Input()
|
@Input()
|
||||||
MESSAGE_PREFIX: string;
|
MESSAGE_PREFIX: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Type of register request to be done, register new email or forgot password (same endpoint)
|
||||||
|
*/
|
||||||
|
@Input()
|
||||||
|
typeRequest: string = null;
|
||||||
|
|
||||||
public AlertTypeEnum = AlertType;
|
public AlertTypeEnum = AlertType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -155,13 +161,9 @@ export class RegisterEmailFormComponent implements OnInit {
|
|||||||
* Registration of an email address
|
* Registration of an email address
|
||||||
*/
|
*/
|
||||||
registration(captchaToken = null) {
|
registration(captchaToken = null) {
|
||||||
let typeMap = new Map<string, string>([
|
|
||||||
['register-page.registration', 'register'],
|
|
||||||
['forgot-email.form', 'forgot']
|
|
||||||
]);
|
|
||||||
let registerEmail$ = captchaToken ?
|
let registerEmail$ = captchaToken ?
|
||||||
this.epersonRegistrationService.registerEmail(this.email.value, captchaToken, typeMap.get(this.MESSAGE_PREFIX)) :
|
this.epersonRegistrationService.registerEmail(this.email.value, captchaToken, this.typeRequest) :
|
||||||
this.epersonRegistrationService.registerEmail(this.email.value, null, typeMap.get(this.MESSAGE_PREFIX));
|
this.epersonRegistrationService.registerEmail(this.email.value, null, this.typeRequest);
|
||||||
registerEmail$.subscribe((response: RemoteData<Registration>) => {
|
registerEmail$.subscribe((response: RemoteData<Registration>) => {
|
||||||
if (response.hasSucceeded) {
|
if (response.hasSucceeded) {
|
||||||
this.notificationService.success(this.translateService.get(`${this.MESSAGE_PREFIX}.success.head`),
|
this.notificationService.success(this.translateService.get(`${this.MESSAGE_PREFIX}.success.head`),
|
||||||
|
@@ -1,3 +1,3 @@
|
|||||||
<ds-register-email-form
|
<ds-register-email-form
|
||||||
[MESSAGE_PREFIX]="'register-page.registration'">
|
[MESSAGE_PREFIX]="'register-page.registration'" [typeRequest]="'register'">
|
||||||
</ds-register-email-form>
|
</ds-register-email-form>
|
||||||
|
Reference in New Issue
Block a user