[gnome-shell/wip/smartcard: 8/16] unlockDialog: only emit 'failed' on reset after failure/cancel



commit 16fba7bd5ff18a34080c0c8f9c01a162e9451428
Author: Ray Strode <rstrode redhat com>
Date:   Sun Jul 28 16:06:04 2013 -0400

    unlockDialog: only emit 'failed' on reset after failure/cancel
    
    We currently emit "failed" any time the UserVerifier is reset,
    and user verification didn't succeed prior.
    
    A more conceptually clear time to emit "failed" would be if
    the UserVerifier is reset and user verification failed prior,
    and to emit "failed" if the user cancels unlock.
    
    This commit restructures things to do that. Aside from being
    more conceptually clear, it also lays the groundwork for us
    to be able to reset the unlock screen without failing.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=683437

 js/gdm/authPrompt.js  |    4 ++++
 js/ui/unlockDialog.js |    9 ++++-----
 2 files changed, 8 insertions(+), 5 deletions(-)
---
diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
index db64c68..1c6719e 100644
--- a/js/gdm/authPrompt.js
+++ b/js/gdm/authPrompt.js
@@ -420,6 +420,9 @@ const AuthPrompt = new Lang.Class({
         this.stopSpinning();
         this.setHint(null);
 
+        if (oldStatus == AuthPromptStatus.VERIFICATION_FAILED)
+            this.emit('failed');
+
         this.emit('reset');
     },
 
@@ -460,6 +463,7 @@ const AuthPrompt = new Lang.Class({
 
     cancel: function() {
         this.reset();
+        this.emit('cancelled');
     }
 });
 Signals.addSignalMethods(AuthPrompt.prototype);
diff --git a/js/ui/unlockDialog.js b/js/ui/unlockDialog.js
index 1fc55eb..8f30d6e 100644
--- a/js/ui/unlockDialog.js
+++ b/js/ui/unlockDialog.js
@@ -49,7 +49,8 @@ const UnlockDialog = new Lang.Class({
                                                                      factor: 0.5 }));
 
         this._authPrompt = new AuthPrompt.AuthPrompt(new Gdm.Client(), 
AuthPrompt.AuthPromptMode.UNLOCK_ONLY);
-        this._authPrompt.connect('reset', Lang.bind(this, this._onReset));
+        this._authPrompt.connect('failed', Lang.bind(this, this._fail));
+        this._authPrompt.connect('cancelled', Lang.bind(this, this._fail));
         this._authPrompt.setUser(this._user);
         this._authPrompt.setPasswordChar('\u25cf');
         this._authPrompt.nextButton.label = _("Unlock");
@@ -92,15 +93,13 @@ const UnlockDialog = new Lang.Class({
         }
     },
 
-    _onReset: function() {
+    _fail: function() {
         this.emit('failed');
     },
 
     _escape: function() {
-        if (this.allowCancel) {
+        if (this.allowCancel)
             this._authPrompt.cancel();
-            this.emit('failed');
-        }
     },
 
     _otherUserClicked: function(button, event) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]