diff --git a/src/app/core/services/auth.service.ts b/src/app/core/services/auth.service.ts index b51cb58b9..767f4af4b 100644 --- a/src/app/core/services/auth.service.ts +++ b/src/app/core/services/auth.service.ts @@ -41,8 +41,14 @@ export class AuthService { } this.loaderService.show(); - const loginUrl = `${this.casUrl}/login?${urlParam({ service: `${this.webUrl}/login`, next: window.location.href })}`; - window.location.href = loginUrl; + + const serviceUrl = new URL(`${this.webUrl}/login`); + serviceUrl.searchParams.set('next', window.location.href); + + const loginUrl = new URL(`${this.casUrl}/login`); + loginUrl.searchParams.set('service', serviceUrl.toString()); + + window.location.href = loginUrl.toString(); } navigateToOrcidSignIn(): void { @@ -79,7 +85,7 @@ export class AuthService { if (isPlatformBrowser(this.platformId)) { this.cookieService.deleteAll(); - window.location.href = `${this.webUrl}/logout/?next=${encodeURIComponent('/')}`; + window.location.href = `${this.webUrl}/logout/?next=${encodeURIComponent(window.location.origin)}`; } } diff --git a/src/app/shared/mappers/institutions/institutions.mapper.ts b/src/app/shared/mappers/institutions/institutions.mapper.ts index f3552702a..172faacf8 100644 --- a/src/app/shared/mappers/institutions/institutions.mapper.ts +++ b/src/app/shared/mappers/institutions/institutions.mapper.ts @@ -25,6 +25,7 @@ export class InstitutionsMapper { logoPath: data.attributes.logo_path, userMetricsUrl: data.relationships?.user_metrics?.links?.related?.href, linkToExternalReportsArchive: data.attributes.link_to_external_reports_archive, + sso_availability: data.attributes.sso_availability, }; } diff --git a/src/app/shared/models/institutions/institution-json-api.model.ts b/src/app/shared/models/institutions/institution-json-api.model.ts index cedc24e36..63a7f7a3c 100644 --- a/src/app/shared/models/institutions/institution-json-api.model.ts +++ b/src/app/shared/models/institutions/institution-json-api.model.ts @@ -23,6 +23,7 @@ interface InstitutionAttributesJsonApi { institutional_request_access_enabled: boolean; logo_path: string; link_to_external_reports_archive: string; + sso_availability: string; } interface InstitutionLinksJsonApi { diff --git a/src/app/shared/models/institutions/institutions.model.ts b/src/app/shared/models/institutions/institutions.model.ts index f00b4a278..aaee35b7d 100644 --- a/src/app/shared/models/institutions/institutions.model.ts +++ b/src/app/shared/models/institutions/institutions.model.ts @@ -16,6 +16,7 @@ export interface Institution { logoPath: string; userMetricsUrl?: string; linkToExternalReportsArchive?: string; + sso_availability: string; } export interface InstitutionAssets {