[gnome-shell/wip/disable-user-list: 1/3] loginDialog: don't rely on PAM to ask for a username



commit 5a36d0f82c122c414d8baa741578830653ceb8c2
Author: Ray Strode <rstrode redhat com>
Date:   Tue Oct 30 15:06:44 2012 -0400

    loginDialog: don't rely on PAM to ask for a username
    
    For the "Not Listed?" case we'll ultimately want to
    identify when the user has entered their username.
    
    Right now, we pass "null" in for an initial username,
    and let the PAM conversation machinery ask the user.
    
    This commit changes the "Not Listed?" code to ask the
    user their username up front, before starting the PAM
    conversation (in much the same way we do if the user
    picks a user from the user list).

 js/gdm/loginDialog.js |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)
---
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index 757d7de..152df0c 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -961,6 +961,23 @@ const LoginDialog = new Lang.Class({
         return batch.run();
     },
 
+    _askForUsernameAndLogIn: function() {
+        this._promptLabel.set_text(_("Username: "));
+        this._promptEntry.set_text('');
+        this._promptEntry.clutter_text.set_password_char('');
+
+        let tasks = [this._showPrompt,
+
+                     function() {
+                         let userName = this._promptEntry.get_text();
+                         this._promptEntry.reactive = false;
+                         return this._beginVerificationForUser(userName);
+                     }];
+
+        let batch = new Batch.ConsecutiveBatch(this, tasks);
+        return batch.run();
+    },
+
     _onSessionOpened: function(client, serviceName) {
         this._greeter.call_start_session_when_ready_sync(serviceName, true, null);
     },
@@ -1106,10 +1123,7 @@ const LoginDialog = new Lang.Class({
                                                       this._fadeOutNotListedButton]),
 
                      function() {
-                         let hold = new Batch.Hold();
-
-                         this._userVerifier.begin(null, hold);
-                         return hold;
+                         return this._askForUsernameAndLogIn();
                      }];
 
         let batch = new Batch.ConsecutiveBatch(this, tasks);



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