Skip to content

Commit 86bafdd

Browse files
authored
Merge pull request #2745 from ORCID/lmendoza/PD-4994
PD-4994,PD-4993
2 parents ec4f199 + bb63e08 commit 86bafdd

2 files changed

Lines changed: 24 additions & 3 deletions

File tree

src/app/record/components/top-bar/top-bar.component.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
[emailVerified]="emailVerified"
1212
[justRegistered]="justRegistered"
1313
></app-top-bar-verification-email>
14-
<ng-container *ngIf="!isPublicRecord && !recordWithIssues">
14+
<ng-container
15+
*ngIf="!isPublicRecord && !recordWithIssues && userInfo?.LOCKED !== 'true'"
16+
>
1517
<orcid-registry-permission-notifications
1618
*ngIf="permissionPanelNotifications?.length"
1719
[title]="permissionPanelTitle"

src/app/record/components/top-bar/top-bar.component.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,8 @@ export class TopBarComponent implements OnInit, OnDestroy {
178178
}
179179

180180
if (event.actionId === 'connect') {
181-
const target = raw.authorizationUrl?.uri
181+
const integration = this.parseOrcidIntegrationIntro(raw?.notificationIntro)
182+
const target = integration?.link || raw.authorizationUrl?.uri
182183
this._inbox
183184
.flagAsRead(raw.putCode)
184185
.pipe(first())
@@ -212,7 +213,12 @@ export class TopBarComponent implements OnInit, OnDestroy {
212213
.subscribe((grouped) => {
213214
this.permissionPanelRaw = grouped
214215
this.permissionPanelNotifications = grouped.map((n) => {
215-
const orgName = n?.sourceDescription || ''
216+
const integration = this.parseOrcidIntegrationIntro(n?.notificationIntro)
217+
const orgName =
218+
integration?.memberName ||
219+
n?.source?.sourceName?.content ||
220+
n?.sourceDescription ||
221+
''
216222
const escaped = orgName
217223
.replace(/&/g, '&amp;')
218224
.replace(/</g, '&lt;')
@@ -242,6 +248,19 @@ export class TopBarComponent implements OnInit, OnDestroy {
242248
})
243249
}
244250

251+
private parseOrcidIntegrationIntro(
252+
intro?: string
253+
): { memberName: string; link: string } | null {
254+
if (!intro || !intro.includes('::')) {
255+
return null
256+
}
257+
const [memberName, link] = intro.split('::')
258+
if (!memberName || !link) {
259+
return null
260+
}
261+
return { memberName, link }
262+
}
263+
245264
resendVerificationEmailModal(email: string) {
246265
this._verificationEmailModalService.openVerificationEmailModal(email)
247266
}

0 commit comments

Comments
 (0)