- @if (currentUser()?.social?.orcid) {
+ @if (orcidId()) {
}
diff --git a/src/app/features/profile/components/profile-information/profile-information.component.ts b/src/app/features/profile/components/profile-information/profile-information.component.ts
index 25d7f1a4d..3304a8ce2 100644
--- a/src/app/features/profile/components/profile-information/profile-information.component.ts
+++ b/src/app/features/profile/components/profile-information/profile-information.component.ts
@@ -43,6 +43,11 @@ export class ProfileInformationComponent {
userSocials = computed(() => mapUserSocials(this.currentUser()?.social, SOCIAL_LINKS));
+ orcidId = computed(() => {
+ const orcid = this.currentUser()?.external_identity?.ORCID;
+ return orcid?.status?.toUpperCase() === 'VERIFIED' ? orcid.id : undefined;
+ });
+
toProfileSettings() {
this.editProfile.emit();
}
diff --git a/src/app/shared/mappers/user/user.mapper.ts b/src/app/shared/mappers/user/user.mapper.ts
index 50b7b8b71..0a89499c6 100644
--- a/src/app/shared/mappers/user/user.mapper.ts
+++ b/src/app/shared/mappers/user/user.mapper.ts
@@ -32,6 +32,7 @@ export class UserMapper {
employment: user.attributes.employment,
iri: user.links.iri,
social: user.attributes.social,
+ external_identity: user.attributes.external_identity,
defaultRegionId: user.relationships?.default_region?.data?.id,
canViewReviews: user.attributes.can_view_reviews === true, // [NS] Do not simplify it
timezone: user.attributes.timezone,
diff --git a/src/app/shared/models/user/external-identity.model.ts b/src/app/shared/models/user/external-identity.model.ts
new file mode 100644
index 000000000..9703400e0
--- /dev/null
+++ b/src/app/shared/models/user/external-identity.model.ts
@@ -0,0 +1,8 @@
+export interface OrcidInfo {
+ id: string;
+ status: string;
+}
+
+export interface ExternalIdentityModel {
+ ORCID?: OrcidInfo | null;
+}
diff --git a/src/app/shared/models/user/user-json-api.model.ts b/src/app/shared/models/user/user-json-api.model.ts
index fd2fc083f..99ffcf74a 100644
--- a/src/app/shared/models/user/user-json-api.model.ts
+++ b/src/app/shared/models/user/user-json-api.model.ts
@@ -2,6 +2,7 @@ import { ResponseDataJsonApi } from '../common/json-api.model';
import { Education } from './education.model';
import { Employment } from './employment.model';
+import { ExternalIdentityModel } from './external-identity.model';
import { SocialModel } from './social.model';
export type UserResponseJsonApi = ResponseDataJsonApi
;
@@ -47,6 +48,7 @@ export interface UserAttributesJsonApi {
suffix: string;
locale: string;
social: SocialModel;
+ external_identity: ExternalIdentityModel;
timezone: string;
}
diff --git a/src/app/shared/models/user/user.models.ts b/src/app/shared/models/user/user.models.ts
index 2eadb1721..cbde55356 100644
--- a/src/app/shared/models/user/user.models.ts
+++ b/src/app/shared/models/user/user.models.ts
@@ -1,5 +1,6 @@
import { Education } from './education.model';
import { Employment } from './employment.model';
+import { ExternalIdentityModel } from './external-identity.model';
import { SocialModel } from './social.model';
export interface UserData {
@@ -24,6 +25,7 @@ export interface UserModel {
timezone: string;
locale: string;
social: SocialModel;
+ external_identity: ExternalIdentityModel;
defaultRegionId: string;
link?: string;
iri?: string;