[gnome-shell] gdmUtil: support disabling password authentication
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] gdmUtil: support disabling password authentication
- Date: Mon, 19 Aug 2013 01:40:07 +0000 (UTC)
commit 4394a05243275da0c9af1d00e382d98ea5220893
Author: Ray Strode <rstrode redhat com>
Date: Mon Jul 29 14:18:30 2013 -0400
gdmUtil: support disabling password authentication
This commit skips trying password authentication if it's
disallowed, favoring fingerprint login instead.
https://bugzilla.gnome.org/show_bug.cgi?id=683437
js/gdm/util.js | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
---
diff --git a/js/gdm/util.js b/js/gdm/util.js
index acab471..a7b8b62 100644
--- a/js/gdm/util.js
+++ b/js/gdm/util.js
@@ -21,6 +21,7 @@ const FADE_ANIMATION_TIME = 0.16;
const CLONE_FADE_ANIMATION_TIME = 0.25;
const LOGIN_SCREEN_SCHEMA = 'org.gnome.login-screen';
+const PASSWORD_AUTHENTICATION_KEY = 'enable-password-authentication';
const FINGERPRINT_AUTHENTICATION_KEY = 'enable-fingerprint-authentication';
const BANNER_MESSAGE_KEY = 'banner-message-enable';
const BANNER_MESSAGE_TEXT_KEY = 'banner-message-text';
@@ -116,6 +117,8 @@ const ShellUserVerifier = new Lang.Class({
this._client = client;
this._settings = new Gio.Settings({ schema: LOGIN_SCREEN_SCHEMA });
+ this._settings.connect('changed',
+ Lang.bind(this, this._updateDefaultService));
this._updateDefaultService();
this._fprintManager = new Fprint.FprintManager();
@@ -237,13 +240,16 @@ const ShellUserVerifier = new Lang.Class({
_checkForFingerprintReader: function() {
this._haveFingerprintReader = false;
- if (!this._settings.get_boolean(FINGERPRINT_AUTHENTICATION_KEY))
+ if (!this._settings.get_boolean(FINGERPRINT_AUTHENTICATION_KEY)) {
+ this._updateDefaultService();
return;
+ }
this._fprintManager.GetDefaultDeviceRemote(Gio.DBusCallFlags.NONE, this._cancellable, Lang.bind(this,
function(device, error) {
if (!error && device)
this._haveFingerprintReader = true;
+ this._updateDefaultService();
}));
},
@@ -313,8 +319,10 @@ const ShellUserVerifier = new Lang.Class({
},
_updateDefaultService: function() {
- // For now, the default service is always the password service
- this._defaultService = PASSWORD_SERVICE_NAME;
+ if (this._settings.get_boolean(PASSWORD_AUTHENTICATION_KEY))
+ this._defaultService = PASSWORD_SERVICE_NAME;
+ else if (this._haveFingerprintReader)
+ this._defaultService = FINGERPRINT_SERVICE_NAME;
},
_startService: function(serviceName) {
@@ -339,7 +347,7 @@ const ShellUserVerifier = new Lang.Class({
_beginVerification: function() {
this._startService(this._getForegroundService());
- if (this._userName && this._haveFingerprintReader)
+ if (this._userName && this._haveFingerprintReader &&
!this.serviceIsForeground(FINGERPRINT_SERVICE_NAME))
this._startService(FINGERPRINT_SERVICE_NAME);
},
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]