gdm: Handle absence of Fprint.Manager service
We rely on the service to detect whether a fingerprint reader is present. It is fine to not support fingerprint authentication when the service is missing, but currently we don't handle this case at all and end up with a non-functional login screen. https://bugzilla.gnome.org/show_bug.cgi?id=780063
This commit is contained in:
parent
f97a3522e5
commit
c0861b1227
@ -23,6 +23,12 @@ function FprintManager() {
|
||||
g_object_path: '/net/reactivated/Fprint/Manager',
|
||||
g_flags: (Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
|
||||
|
||||
self.init(null);
|
||||
try {
|
||||
self.init(null);
|
||||
} catch(e) {
|
||||
log('Failed to connect to Fprint service: ' + e.message);
|
||||
return null;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
@ -133,7 +133,7 @@ const ShellUserVerifier = new Lang.Class({
|
||||
Lang.bind(this, this._updateDefaultService));
|
||||
this._updateDefaultService();
|
||||
|
||||
this._fprintManager = new Fprint.FprintManager();
|
||||
this._fprintManager = Fprint.FprintManager();
|
||||
this._smartcardManager = SmartcardManager.getSmartcardManager();
|
||||
|
||||
// We check for smartcards right away, since an inserted smartcard
|
||||
@ -293,7 +293,8 @@ 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._fprintManager == null) {
|
||||
this._updateDefaultService();
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user