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
This commit is contained in:
@@ -14,6 +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";
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root',
|
providedIn: 'root',
|
||||||
@@ -55,7 +56,7 @@ export class EpersonRegistrationService {
|
|||||||
* @param email
|
* @param email
|
||||||
* @param captchaToken the value of x-recaptcha-token header
|
* @param captchaToken the value of x-recaptcha-token header
|
||||||
*/
|
*/
|
||||||
registerEmail(email: string, captchaToken: string = null): Observable<RemoteData<Registration>> {
|
registerEmail(email: string, captchaToken: string = null, type?: string): Observable<RemoteData<Registration>> {
|
||||||
const registration = new Registration();
|
const registration = new Registration();
|
||||||
registration.email = email;
|
registration.email = email;
|
||||||
|
|
||||||
@@ -69,6 +70,7 @@ 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();
|
||||||
|
|
||||||
href$.pipe(
|
href$.pipe(
|
||||||
find((href: string) => hasValue(href)),
|
find((href: string) => hasValue(href)),
|
||||||
|
@@ -1,7 +1,8 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<h2>{{MESSAGE_PREFIX + '.header'|translate}}</h2>
|
<h2>{{MESSAGE_PREFIX + '.header'|translate}}</h2>
|
||||||
<p>{{MESSAGE_PREFIX + '.info' | translate}}</p>
|
<p>{{MESSAGE_PREFIX + '.info' | translate}}</p>
|
||||||
<p *ngIf="valid_mail_domains.length!= 0">Accounts can be registered for mail addresses of the domains {{ valid_mail_domains.join(", ")}} </p>
|
<p
|
||||||
|
*ngIf="validMailDomains.length!= 0 && MESSAGE_PREFIX==='register-page.registration'">{{ MESSAGE_PREFIX + '.info.maildomain' | translate}} {{ validMailDomains.join(", ")}} </p>
|
||||||
|
|
||||||
<form [class]="'ng-invalid'" [formGroup]="form">
|
<form [class]="'ng-invalid'" [formGroup]="form">
|
||||||
|
|
||||||
|
@@ -58,7 +58,7 @@ export class RegisterEmailFormComponent implements OnInit {
|
|||||||
captchaMode(): Observable<string> {
|
captchaMode(): Observable<string> {
|
||||||
return this.googleRecaptchaService.captchaMode();
|
return this.googleRecaptchaService.captchaMode();
|
||||||
}
|
}
|
||||||
valid_mail_domains: string[];
|
validMailDomains: string[];
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private epersonRegistrationService: EpersonRegistrationService,
|
private epersonRegistrationService: EpersonRegistrationService,
|
||||||
@@ -85,6 +85,7 @@ export class RegisterEmailFormComponent implements OnInit {
|
|||||||
],
|
],
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
this.validMailDomains = [];
|
||||||
this.configService.findByPropertyName('registration.verification.enabled').pipe(
|
this.configService.findByPropertyName('registration.verification.enabled').pipe(
|
||||||
getFirstSucceededRemoteDataPayload(),
|
getFirstSucceededRemoteDataPayload(),
|
||||||
map((res: ConfigurationProperty) => res?.values[0].toLowerCase() === 'true')
|
map((res: ConfigurationProperty) => res?.values[0].toLowerCase() === 'true')
|
||||||
@@ -96,16 +97,6 @@ export class RegisterEmailFormComponent implements OnInit {
|
|||||||
this.disableUntilChecked = res;
|
this.disableUntilChecked = res;
|
||||||
this.changeDetectorRef.detectChanges();
|
this.changeDetectorRef.detectChanges();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.valid_mail_domains = [];
|
|
||||||
this.configService.findByPropertyName('authentication-password.domain.valid')
|
|
||||||
.pipe(getAllCompletedRemoteData())
|
|
||||||
.subscribe((remoteData) => {
|
|
||||||
for (const remoteValue of remoteData.payload.values) {
|
|
||||||
this.valid_mail_domains.push(remoteValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -154,9 +145,13 @@ 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) :
|
this.epersonRegistrationService.registerEmail(this.email.value, captchaToken, typeMap.get(this.MESSAGE_PREFIX)) :
|
||||||
this.epersonRegistrationService.registerEmail(this.email.value);
|
this.epersonRegistrationService.registerEmail(this.email.value,typeMap.get(this.MESSAGE_PREFIX));
|
||||||
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`),
|
||||||
|
@@ -3294,6 +3294,7 @@
|
|||||||
"register-page.registration.google-recaptcha.notification.message.error": "An error occurred during reCaptcha verification",
|
"register-page.registration.google-recaptcha.notification.message.error": "An error occurred during reCaptcha verification",
|
||||||
|
|
||||||
"register-page.registration.google-recaptcha.notification.message.expired": "Verification expired. Please verify again.",
|
"register-page.registration.google-recaptcha.notification.message.expired": "Verification expired. Please verify again.",
|
||||||
|
"register-page.registration.info.maildomain": "Accounts can be registered for mail addresses of the domains",
|
||||||
|
|
||||||
"relationships.add.error.relationship-type.content": "No suitable match could be found for relationship type {{ type }} between the two items",
|
"relationships.add.error.relationship-type.content": "No suitable match could be found for relationship type {{ type }} between the two items",
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user