From d944cb19783ca9985d5ae5644c59fe948e3e565b Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Fri, 3 Sep 2021 09:26:02 +0200 Subject: [PATCH] MOBILE-3819 core: Increase minimum Moodle version to 3.5 --- src/core/classes/site.ts | 27 +++++++++++++++------------ src/core/services/sites.ts | 7 ++----- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/core/classes/site.ts b/src/core/classes/site.ts index 4ed56b553..8d10c359d 100644 --- a/src/core/classes/site.ts +++ b/src/core/classes/site.ts @@ -65,14 +65,10 @@ export class CoreSite { static readonly WS_CACHE_TABLE = 'wscache_2'; static readonly CONFIG_TABLE = 'core_site_config'; - static readonly MINIMUM_MOODLE_VERSION = '3.1'; + static readonly MINIMUM_MOODLE_VERSION = '3.5'; // Versions of Moodle releases. - protected readonly MOODLE_RELEASES = { - '3.1': 2016052300, - '3.2': 2016120500, - '3.3': 2017051503, - '3.4': 2017111300, + static readonly MOODLE_RELEASES = { '3.5': 2018051700, '3.6': 2018120300, '3.7': 2019052000, @@ -495,6 +491,13 @@ export class CoreSite { */ // eslint-disable-next-line @typescript-eslint/no-explicit-any async request(method: string, data: any, preSets: CoreSiteWSPreSets, retrying?: boolean): Promise { + if (this.isLoggedOut()) { + // Site is logged out, it cannot call WebServices. + CoreEvents.trigger(CoreEvents.SESSION_EXPIRED, {}, this.id); + + throw new CoreError(Translate.instant('core.lostconnection')); + } + const initialToken = this.token || ''; data = data || {}; @@ -1812,12 +1815,12 @@ export class CoreSite { return 0; } - if (typeof this.MOODLE_RELEASES[data.major] == 'undefined') { + if (CoreSite.MOODLE_RELEASES[data.major] === undefined) { // Major version not found. Use the last one. - data.major = Object.keys(this.MOODLE_RELEASES).pop()!; + data.major = Object.keys(CoreSite.MOODLE_RELEASES).pop()!; } - return this.MOODLE_RELEASES[data.major] + data.minor; + return CoreSite.MOODLE_RELEASES[data.major] + data.minor; } /** @@ -1847,7 +1850,7 @@ export class CoreSite { */ protected getNextMajorVersionNumber(version: string): number { const data = this.getMajorAndMinor(version); - const releases = Object.keys(this.MOODLE_RELEASES); + const releases = Object.keys(CoreSite.MOODLE_RELEASES); if (!data) { // Invalid version. @@ -1858,10 +1861,10 @@ export class CoreSite { if (position == -1 || position == releases.length - 1) { // Major version not found or it's the last one. Use the last one. - return this.MOODLE_RELEASES[releases[position]]; + return CoreSite.MOODLE_RELEASES[releases[position]]; } - return this.MOODLE_RELEASES[releases[position + 1]]; + return CoreSite.MOODLE_RELEASES[releases[position + 1]]; } /** diff --git a/src/core/services/sites.ts b/src/core/services/sites.ts index ac3a630a1..25dc84381 100644 --- a/src/core/services/sites.ts +++ b/src/core/services/sites.ts @@ -606,14 +606,11 @@ export class CoreSitesProvider { return CoreSitesProvider.INVALID_VERSION; } - const version31 = 2016052300; - const release31 = CoreSite.MINIMUM_MOODLE_VERSION; - // Try to validate by version. if (info.version) { const version = parseInt(info.version, 10); if (!isNaN(version)) { - if (version >= version31) { + if (version >= CoreSite.MOODLE_RELEASES[CoreSite.MINIMUM_MOODLE_VERSION]) { return this.validateWorkplaceVersion(info); } } @@ -622,7 +619,7 @@ export class CoreSitesProvider { // We couldn't validate by version number. Let's try to validate by release number. const release = this.getReleaseNumber(info.release || ''); if (release) { - if (release >= release31) { + if (release >= CoreSite.MINIMUM_MOODLE_VERSION) { return this.validateWorkplaceVersion(info); } }