From ed900d9d1aee8cbed38d2bf6b04ba79e1373d171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Thu, 7 Sep 2023 09:52:08 +0200 Subject: [PATCH] MOBILE-4201 login: Remove SSO open browser confirmation --- moodle.config.json | 1 - scripts/langindex.json | 1 - src/core/features/login/lang.json | 1 - .../login/pages/credentials/credentials.ts | 2 +- .../login/pages/reconnect/reconnect.ts | 2 +- .../features/login/services/login-helper.ts | 20 ++++---------- src/core/services/urlschemes.ts | 26 +++++-------------- src/types/config.d.ts | 1 - 8 files changed, 14 insertions(+), 40 deletions(-) diff --git a/moodle.config.json b/moodle.config.json index 2163e7027..fdd06c0d4 100644 --- a/moodle.config.json +++ b/moodle.config.json @@ -90,7 +90,6 @@ "multisitesdisplay": "", "sitefindersettings": {}, "onlyallowlistedsites": false, - "skipssoconfirmation": false, "forcedefaultlanguage": false, "privacypolicy": "https://moodle.net/moodle-app-privacy/", "notificoncolor": "#f98012", diff --git a/scripts/langindex.json b/scripts/langindex.json index 17546fa19..2141ce9ff 100644 --- a/scripts/langindex.json +++ b/scripts/langindex.json @@ -2087,7 +2087,6 @@ "core.login.invalidvaluemin": "local_moodlemobileapp", "core.login.login": "moodle", "core.login.loginbutton": "local_moodlemobileapp", - "core.login.logininsiterequired": "local_moodlemobileapp", "core.login.loginsteps": "moodle", "core.login.missingemail": "moodle", "core.login.missingfirstname": "moodle", diff --git a/src/core/features/login/lang.json b/src/core/features/login/lang.json index 5d77bdad5..28f619fee 100644 --- a/src/core/features/login/lang.json +++ b/src/core/features/login/lang.json @@ -66,7 +66,6 @@ "invalidvaluemin": "The minimum value is {{$a}}", "login": "Log in", "loginbutton": "Log in", - "logininsiterequired": "You need to log in to the site in a browser window.", "loginsteps": "For full access to this site, you first need to create an account.", "missingemail": "Missing email address", "missingfirstname": "Missing given name", diff --git a/src/core/features/login/pages/credentials/credentials.ts b/src/core/features/login/pages/credentials/credentials.ts index 28edcba3f..e4dcd3d65 100644 --- a/src/core/features/login/pages/credentials/credentials.ts +++ b/src/core/features/login/pages/credentials/credentials.ts @@ -217,7 +217,7 @@ export class CoreLoginCredentialsPage implements OnInit, OnDestroy { return; } - CoreLoginHelper.confirmAndOpenBrowserForSSOLogin( + CoreLoginHelper.openBrowserForSSOLogin( this.siteCheck.siteUrl, this.siteCheck.code, this.siteCheck.service, diff --git a/src/core/features/login/pages/reconnect/reconnect.ts b/src/core/features/login/pages/reconnect/reconnect.ts index 568552ac4..2a8a34394 100644 --- a/src/core/features/login/pages/reconnect/reconnect.ts +++ b/src/core/features/login/pages/reconnect/reconnect.ts @@ -301,7 +301,7 @@ export class CoreLoginReconnectPage implements OnInit, OnDestroy { return; } - CoreLoginHelper.confirmAndOpenBrowserForSSOLogin( + CoreLoginHelper.openBrowserForSSOLogin( this.siteUrl, this.siteConfig.typeoflogin, undefined, diff --git a/src/core/features/login/services/login-helper.ts b/src/core/features/login/services/login-helper.ts index 060fd8e2e..4df017085 100644 --- a/src/core/features/login/services/login-helper.ts +++ b/src/core/features/login/services/login-helper.ts @@ -141,7 +141,7 @@ export class CoreLoginHelperProvider { } /** - * Show a confirm modal if needed and open a browser to perform SSO login. + * Open a browser to perform SSO login. * * @param siteUrl URL of the site where the SSO login will be performed. * @param typeOfLogin CoreConstants.LOGIN_SSO_CODE or CoreConstants.LOGIN_SSO_INAPP_CODE. @@ -149,6 +149,7 @@ export class CoreLoginHelperProvider { * @param launchUrl The URL to open for SSO. If not defined, default tool mobile launch URL will be used. * @param redirectData Data of the path/url to open once authenticated. If not defined, site initial page. * @returns Promise resolved when done or if user cancelled. + * @deprecated since 4.3. Use openBrowserForSSOLogin instead. */ async confirmAndOpenBrowserForSSOLogin( siteUrl: string, @@ -157,18 +158,6 @@ export class CoreLoginHelperProvider { launchUrl?: string, redirectData?: CoreRedirectPayload, ): Promise { - // Show confirm only if it's needed. Treat "false" (string) as false to prevent typing errors. - const showConfirmation = this.shouldShowSSOConfirm(typeOfLogin); - - if (showConfirmation) { - try { - await CoreDomUtils.showConfirm(Translate.instant('core.login.logininsiterequired')); - } catch { - // User canceled, stop. - return; - } - } - this.openBrowserForSSOLogin(siteUrl, typeOfLogin, service, launchUrl, redirectData); } @@ -978,10 +967,11 @@ export class CoreLoginHelperProvider { * * @param typeOfLogin CoreConstants.LOGIN_SSO_CODE or CoreConstants.LOGIN_SSO_INAPP_CODE. * @returns True if confirm modal should be shown, false otherwise. + * @deprecated since 4.3 Not used anymore. */ + // eslint-disable-next-line @typescript-eslint/no-unused-vars shouldShowSSOConfirm(typeOfLogin: number): boolean { - return !this.isSSOEmbeddedBrowser(typeOfLogin) && - (!CoreConstants.CONFIG.skipssoconfirmation || String(CoreConstants.CONFIG.skipssoconfirmation) === 'false'); + return false; } /** diff --git a/src/core/services/urlschemes.ts b/src/core/services/urlschemes.ts index 7344071bf..fd79c93f9 100644 --- a/src/core/services/urlschemes.ts +++ b/src/core/services/urlschemes.ts @@ -390,7 +390,6 @@ export class CoreCustomURLSchemesProvider { * @returns Promise resolved when done. */ protected async goToAddSite(data: CoreCustomURLSchemesParams, siteCheck: CoreSiteCheckResponse): Promise { - const ssoNeeded = CoreLoginHelper.isSSOLoginNeeded(siteCheck.code); const pageParams = { username: data.username, urlToOpen: data.redirect, @@ -401,28 +400,17 @@ export class CoreCustomURLSchemesProvider { // Ask the user before changing site. await CoreDomUtils.showConfirm(Translate.instant('core.contentlinks.confirmurlothersite')); - if (!ssoNeeded) { - const willReload = await CoreSites.logoutForRedirect(CoreConstants.NO_SITE_ID, { - redirectPath: '/login/credentials', - redirectOptions: { params: pageParams }, - }); + const willReload = await CoreSites.logoutForRedirect(CoreConstants.NO_SITE_ID, { + redirectPath: '/login/credentials', + redirectOptions: { params: pageParams }, + }); - if (willReload) { - return; - } + if (willReload) { + return; } } - if (ssoNeeded) { - CoreLoginHelper.confirmAndOpenBrowserForSSOLogin( - siteCheck.siteUrl, - siteCheck.code, - siteCheck.service, - siteCheck.config?.launchurl, - ); - } else { - await CoreNavigator.navigateToLoginCredentials(pageParams); - } + await CoreNavigator.navigateToLoginCredentials(pageParams); } /** diff --git a/src/types/config.d.ts b/src/types/config.d.ts index 49743638d..cb34209a9 100644 --- a/src/types/config.d.ts +++ b/src/types/config.d.ts @@ -46,7 +46,6 @@ export interface EnvironmentConfig { multisitesdisplay: CoreLoginSiteSelectorListMethod; sitefindersettings: Partial; onlyallowlistedsites: boolean; - skipssoconfirmation: boolean; forcedefaultlanguage: boolean; privacypolicy: string; notificoncolor: string;