Skip to content

Commit e7e86ee

Browse files
committed
feat(settings): Allow user to connect ORCID in profile settings page
1 parent 10716b9 commit e7e86ee

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/app/features/settings/profile-settings/components/authenticated-identity/authenticated-identity.component.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { finalize } from 'rxjs';
1010
import { NgOptimizedImage } from '@angular/common';
1111
import { ChangeDetectionStrategy, Component, computed, inject, OnInit } from '@angular/core';
1212

13+
import { ENVIRONMENT } from '@core/provider/environment.provider';
1314
import { ExternalIdentityStatus } from '@osf/shared/enums/external-identity-status.enum';
1415
import { CustomConfirmationService } from '@osf/shared/services/custom-confirmation.service';
1516
import { LoaderService } from '@osf/shared/services/loader.service';
@@ -29,6 +30,7 @@ import {
2930
changeDetection: ChangeDetectionStrategy.OnPush,
3031
})
3132
export class AuthenticatedIdentityComponent implements OnInit {
33+
private readonly environment = inject(ENVIRONMENT);
3234
private readonly customConfirmationService = inject(CustomConfirmationService);
3335
private readonly toastService = inject(ToastService);
3436
private readonly loaderService = inject(LoaderService);
@@ -72,6 +74,18 @@ export class AuthenticatedIdentityComponent implements OnInit {
7274
}
7375

7476
connectOrcid(): void {
75-
/* no-op for now*/
77+
const webUrl = this.environment.webUrl;
78+
const casUrl = this.environment.casUrl;
79+
const finalDestination = new URL(`${webUrl}/settings/profile`);
80+
finalDestination.searchParams.set('tab', '2');
81+
const casLoginUrl = new URL(`${casUrl}/login`);
82+
casLoginUrl.search = new URLSearchParams({
83+
redirectOrcid: 'true',
84+
service: `${webUrl}/login`,
85+
next: encodeURIComponent(finalDestination.toString()),
86+
}).toString();
87+
const logoutUrl = new URL(`${webUrl}/logout/`);
88+
logoutUrl.searchParams.set('next', casLoginUrl.toString());
89+
window.open(logoutUrl.toString(), '_blank');
7690
}
7791
}

0 commit comments

Comments
 (0)