chore: offline hosts
This commit is contained in:
@@ -7,6 +7,7 @@ export const TRUSTED_FEATURE_HOSTS = [
|
|||||||
'extensions.standardnotes.com',
|
'extensions.standardnotes.com',
|
||||||
'extensions.standardnotes.org',
|
'extensions.standardnotes.org',
|
||||||
'features.standardnotes.com',
|
'features.standardnotes.com',
|
||||||
|
'localhost',
|
||||||
]
|
]
|
||||||
|
|
||||||
export enum ExtensionsServerURL {
|
export enum ExtensionsServerURL {
|
||||||
|
|||||||
@@ -648,10 +648,10 @@ export class SNApiService
|
|||||||
throw Error('Cannot download offline repo without url and offlineKEy')
|
throw Error('Cannot download offline repo without url and offlineKEy')
|
||||||
}
|
}
|
||||||
|
|
||||||
const { host } = new URL(featuresUrl)
|
const { hostname } = new URL(featuresUrl)
|
||||||
|
|
||||||
if (!TRUSTED_FEATURE_HOSTS.includes(host)) {
|
if (!TRUSTED_FEATURE_HOSTS.includes(hostname)) {
|
||||||
return new ClientDisplayableError('This offline features host is not in the trusted allowlist.')
|
return new ClientDisplayableError(`The offline features host ${hostname} is not in the trusted allowlist.`)
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await this.request<GetOfflineFeaturesResponse>({
|
const response = await this.request<GetOfflineFeaturesResponse>({
|
||||||
|
|||||||
@@ -282,7 +282,7 @@ export class SNFeaturesService
|
|||||||
void this.syncService.sync()
|
void this.syncService.sync()
|
||||||
return this.downloadOfflineFeatures(offlineRepo)
|
return this.downloadOfflineFeatures(offlineRepo)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return new ClientDisplayableError(API_MESSAGE_FAILED_OFFLINE_ACTIVATION)
|
return new ClientDisplayableError(`${API_MESSAGE_FAILED_OFFLINE_ACTIVATION}, ${err}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -392,12 +392,12 @@ export class SNFeaturesService
|
|||||||
}
|
}
|
||||||
|
|
||||||
const offlineRepo = this.getOfflineRepo()
|
const offlineRepo = this.getOfflineRepo()
|
||||||
if (!offlineRepo) {
|
if (!offlineRepo || !offlineRepo.content.offlineFeaturesUrl) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
const hasFirstPartyOfflineSubscription = offlineRepo.content.offlineFeaturesUrl === PROD_OFFLINE_FEATURES_URL
|
const hasFirstPartyOfflineSubscription = offlineRepo.content.offlineFeaturesUrl === PROD_OFFLINE_FEATURES_URL
|
||||||
return hasFirstPartyOfflineSubscription
|
return hasFirstPartyOfflineSubscription || new URL(offlineRepo.content.offlineFeaturesUrl).hostname === 'localhost'
|
||||||
}
|
}
|
||||||
|
|
||||||
async updateOnlineRolesAndFetchFeatures(userUuid: UuidString, roles: string[]): Promise<void> {
|
async updateOnlineRolesAndFetchFeatures(userUuid: UuidString, roles: string[]): Promise<void> {
|
||||||
|
|||||||
Reference in New Issue
Block a user