fix(dashboard): use verified custom domain for view-as-student handoff (#677)
* fix(dashboard): use verified custom domain for view-as-student handoff Prefer the org's verified custom domain over window.location.origin when resolving the public tenant host. This prevents admin URLs like app.example.com from being used for the student login-link handoff when the org's public site is example.com. Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * fix(dashboard): keep self-hosted org origin on window.location Self-hosted deployments serve admin and LMS from the same URL, so getOrgPublicOrigin should always return window.location.origin there rather than preferring a configured custom domain. Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
This commit is contained in:
co-authored by
Rotimi Best
Cursor Agent
parent
0a6db37566
commit
5320f1eb44
@@ -77,19 +77,34 @@ export const currentOrgPath = derived(currentOrg, ($currentOrg) =>
|
||||
$currentOrg.siteName ? `/org/${$currentOrg.siteName}` : '#'
|
||||
);
|
||||
|
||||
export const currentOrgDomain = derived(currentOrg, ($currentOrg) => {
|
||||
if (PUBLIC_IS_SELFHOSTED === 'true') return window.location.origin;
|
||||
type OrgPublicOrigin = Pick<AccountOrg, 'customDomain' | 'isCustomDomainVerified' | 'siteName'>;
|
||||
|
||||
const browserOrigin = dev && browser && window.location.origin;
|
||||
/**
|
||||
* Public origin for an org's tenant site (student LMS, public course pages, login-link handoff).
|
||||
* Self-hosted uses the current deployment URL. On cloud, verified custom domains win over the
|
||||
* admin host so `app.classroomio.com` still hands off to the org's `example.com` tenant site.
|
||||
*/
|
||||
export function getOrgPublicOrigin(org: OrgPublicOrigin): string {
|
||||
if (PUBLIC_IS_SELFHOSTED === 'true') {
|
||||
return browser ? window.location.origin : '';
|
||||
}
|
||||
|
||||
return browserOrigin
|
||||
? browserOrigin
|
||||
: $currentOrg.customDomain && $currentOrg.isCustomDomainVerified
|
||||
? `https://${$currentOrg.customDomain}`
|
||||
: $currentOrg.siteName
|
||||
? `https://${$currentOrg.siteName}.${TENANT_ROOT_DOMAIN}`
|
||||
: '';
|
||||
});
|
||||
if (org.customDomain && org.isCustomDomainVerified) {
|
||||
return `https://${org.customDomain}`;
|
||||
}
|
||||
|
||||
if (dev && browser) {
|
||||
return window.location.origin;
|
||||
}
|
||||
|
||||
if (org.siteName) {
|
||||
return `https://${org.siteName}.${TENANT_ROOT_DOMAIN}`;
|
||||
}
|
||||
|
||||
return browser ? window.location.origin : '';
|
||||
}
|
||||
|
||||
export const currentOrgDomain = derived(currentOrg, ($currentOrg) => getOrgPublicOrigin($currentOrg));
|
||||
|
||||
export const isFreePlan = derived(currentOrg, ($currentOrg) => {
|
||||
if (!$currentOrg.id || PUBLIC_IS_SELFHOSTED === 'true') return false;
|
||||
|
||||
Reference in New Issue
Block a user