Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 37 additions & 42 deletions hlx_statics/blocks/getcredential/getcredential.js
Original file line number Diff line number Diff line change
Expand Up @@ -193,13 +193,13 @@ async function createCredential() {
throw new Error('Template configuration missing');
}

// Prepare APIs data
// Prepare APIs data with licenseConfigs from the template response
const apis = templateData.apis?.map(api => ({
code: api.code,
credentialType: api.credentialType,
flowType: api.flowType,
licenseConfigs: Array.isArray(api.licenseConfigs) && api.licenseConfigs.length > 0
? [{ ...api.licenseConfigs[0], op: 'add' }]
? [{ id: api.licenseConfigs[0].id, productId: api.licenseConfigs[0].productId, op: 'add' }]
: [],
})) || [];

Expand Down Expand Up @@ -343,6 +343,9 @@ async function fetchTemplateEntitlement() {
const response = await fetch(url, { method: 'GET', headers });
if (!response.ok) return null;
const data = await response.json();
if (templateData && Array.isArray(data?.apis)) {
templateData.apis = data.apis;
}
const userEntitled = data?.userEntitled !== false;
const orgEntitled = data?.orgEntitled !== false;
const disEntitledReasons = data?.disEntitledReasons;
Expand Down Expand Up @@ -2110,20 +2113,16 @@ export default async function decorate(block) {
renderPageAfterOrgChange = (sourceContainer) => {
setLoadingText(loadingContainer, 'Loading...');
navigateTo(sourceContainer, loadingContainer);
if (requestAccessContainer) {
fetchTemplateEntitlement().then(async (entitlement) => {
if (entitlement && (entitlement.userEntitled === false || entitlement.orgEntitled === false)) {
const leftCardKey = getRequestAccessLeftCardKey(entitlement, selectedOrganization, credentialData.RequestAccess);
const profile = await window.adobeIMS?.getProfile().catch(() => null);
updateRequestAccessLeftColumn(requestAccessContainer, credentialData.RequestAccess, leftCardKey, { selectedOrganization, userEmail: profile?.email });
navigateTo(loadingContainer, requestAccessContainer);
} else {
runFormOrReturnFlow();
}
}).catch(() => runFormOrReturnFlow());
} else {
runFormOrReturnFlow();
}
fetchTemplateEntitlement().then(async (entitlement) => {
if (requestAccessContainer && entitlement && (entitlement.userEntitled === false || entitlement.orgEntitled === false)) {
const leftCardKey = getRequestAccessLeftCardKey(entitlement, selectedOrganization, credentialData.RequestAccess);
const profile = await window.adobeIMS?.getProfile().catch(() => null);
updateRequestAccessLeftColumn(requestAccessContainer, credentialData.RequestAccess, leftCardKey, { selectedOrganization, userEmail: profile?.email });
navigateTo(loadingContainer, requestAccessContainer);
} else {
runFormOrReturnFlow();
}
}).catch(() => runFormOrReturnFlow());
};

// Create success card container
Expand Down Expand Up @@ -2337,17 +2336,16 @@ export default async function decorate(block) {
navigateTo(loadingContainer, requestAccessContainer);
return;
}
// If Request Access config exists, check entitlement first (same as React: !template.userEntitled || !template.orgEntitled -> RequestAccess)
if (requestAccessContainer) {
const entitlement = await fetchTemplateEntitlement();
if (entitlement && (entitlement.userEntitled === false || entitlement.orgEntitled === false)) {
lastRequestAccessEntitlement = entitlement;
const leftCardKey = getRequestAccessLeftCardKey(entitlement, selectedOrganization, credentialData.RequestAccess);
const profile = await window.adobeIMS?.getProfile().catch(() => null);
updateRequestAccessLeftColumn(requestAccessContainer, credentialData.RequestAccess, leftCardKey, { selectedOrganization, userEmail: profile?.email });
navigateTo(loadingContainer, requestAccessContainer);
return;
}
// Fetch template data (populates templateData.apis for credential creation)
// and check entitlement (same as React: !template.userEntitled || !template.orgEntitled -> RequestAccess)
const entitlement = await fetchTemplateEntitlement();
if (requestAccessContainer && entitlement && (entitlement.userEntitled === false || entitlement.orgEntitled === false)) {
lastRequestAccessEntitlement = entitlement;
const leftCardKey = getRequestAccessLeftCardKey(entitlement, selectedOrganization, credentialData.RequestAccess);
const profile = await window.adobeIMS?.getProfile().catch(() => null);
updateRequestAccessLeftColumn(requestAccessContainer, credentialData.RequestAccess, leftCardKey, { selectedOrganization, userEmail: profile?.email });
navigateTo(loadingContainer, requestAccessContainer);
return;
}
runFormOrReturnFlow();
});
Expand Down Expand Up @@ -2388,22 +2386,19 @@ export default async function decorate(block) {
});
return;
}
// Same as React: if !template.userEntitled || !template.orgEntitled -> show RequestAccess (RestrictedAccess or EdgeCase)
if (requestAccessContainer) {
fetchTemplateEntitlement().then(async (entitlement) => {
if (entitlement && (entitlement.userEntitled === false || entitlement.orgEntitled === false)) {
lastRequestAccessEntitlement = entitlement;
const leftCardKey = getRequestAccessLeftCardKey(entitlement, selectedOrganization, credentialData.RequestAccess);
const profile = await window.adobeIMS?.getProfile().catch(() => null);
updateRequestAccessLeftColumn(requestAccessContainer, credentialData.RequestAccess, leftCardKey, { selectedOrganization, userEmail: profile?.email });
navigateTo(loadingContainer, requestAccessContainer);
return;
}
runFormOrReturnFlow();
}).catch(() => runFormOrReturnFlow());
} else {
// Fetch template data (populates templateData.apis for credential creation)
// and check entitlement (same as React: !template.userEntitled || !template.orgEntitled -> RequestAccess)
fetchTemplateEntitlement().then(async (entitlement) => {
if (requestAccessContainer && entitlement && (entitlement.userEntitled === false || entitlement.orgEntitled === false)) {
lastRequestAccessEntitlement = entitlement;
const leftCardKey = getRequestAccessLeftCardKey(entitlement, selectedOrganization, credentialData.RequestAccess);
const profile = await window.adobeIMS?.getProfile().catch(() => null);
updateRequestAccessLeftColumn(requestAccessContainer, credentialData.RequestAccess, leftCardKey, { selectedOrganization, userEmail: profile?.email });
navigateTo(loadingContainer, requestAccessContainer);
return;
}
runFormOrReturnFlow();
}
}).catch(() => runFormOrReturnFlow());
}
}
};
Expand Down
Loading