From dc4f0f9053b0db3d064be5e8e74699a3cd11209f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Fri, 21 Oct 2022 19:05:04 +0200 Subject: [PATCH] gdm/util: Restart auth if default service changed If a default service changed while the previous one was active we need to reset the authentication so that we set back to the expected one. Part-of: --- js/gdm/util.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/js/gdm/util.js b/js/gdm/util.js index 9946b2c61..3ea91d2bb 100644 --- a/js/gdm/util.js +++ b/js/gdm/util.js @@ -519,6 +519,8 @@ export class ShellUserVerifier extends Signals.EventEmitter { } _updateDefaultService() { + const oldDefaultService = this._defaultService; + if (this._settings.get_boolean(PASSWORD_AUTHENTICATION_KEY)) this._defaultService = PASSWORD_SERVICE_NAME; else if (this._settings.get_boolean(SMARTCARD_AUTHENTICATION_KEY)) @@ -530,6 +532,11 @@ export class ShellUserVerifier extends Signals.EventEmitter { log('no authentication service is enabled, using password authentication'); this._defaultService = PASSWORD_SERVICE_NAME; } + + if (oldDefaultService && + oldDefaultService !== this._defaultService && + this._activeServices.has(oldDefaultService)) + this._cancelAndReset(); } async _startService(serviceName) {