authPrompt: Call next button "Unlock" when user switching

When a ShellUserVerifier is asked to verify a user at the login
screen it will transparently first try to reauthenticate the user
against an existing session and then fall back to logging a user
into a new session.  The former is used for user switching.
It's useful to know which type of verification is happening, so
the next button can be made to say "Unlock" instead of "Sign In" when
a user is already signed in.

This commit exports a new "reauthenticating" property on the
ShellUserVerifier that the auth prompt checks when deciding which
label to use for its next button.

https://bugzilla.gnome.org/show_bug.cgi?id=704795
This commit is contained in:
Ray Strode 2013-07-22 10:59:57 -04:00
parent db497a2ecf
commit 87245c7b33
2 changed files with 5 additions and 2 deletions

View File

@ -198,9 +198,9 @@ const AuthPrompt = new Lang.Class({
this.cancelButton.hide(); this.cancelButton.hide();
if (passwordChar) { if (passwordChar) {
if (this._mode == AuthPromptMode.UNLOCK_ONLY) if (this._userVerifier.reauthenticating)
this.nextButton.label = _("Unlock"); this.nextButton.label = _("Unlock");
else if (this._mode == AuthPromptMode.UNLOCK_OR_LOG_IN) else
this.nextButton.label = C_("button", "Sign In"); this.nextButton.label = C_("button", "Sign In");
} else { } else {
this.nextButton.label = _("Next"); this.nextButton.label = _("Next");

View File

@ -121,6 +121,7 @@ const ShellUserVerifier = new Lang.Class({
this._messageQueue = []; this._messageQueue = [];
this._messageQueueTimeoutId = 0; this._messageQueueTimeoutId = 0;
this.hasPendingMessages = false; this.hasPendingMessages = false;
this.reauthenticating = false;
this._failCounter = 0; this._failCounter = 0;
}, },
@ -129,6 +130,7 @@ const ShellUserVerifier = new Lang.Class({
this._cancellable = new Gio.Cancellable(); this._cancellable = new Gio.Cancellable();
this._hold = hold; this._hold = hold;
this._userName = userName; this._userName = userName;
this.reauthenticating = false;
this._checkForFingerprintReader(); this._checkForFingerprintReader();
@ -267,6 +269,7 @@ const ShellUserVerifier = new Lang.Class({
return; return;
} }
this.reauthenticating = true;
this._connectSignals(); this._connectSignals();
this._beginVerification(); this._beginVerification();
this._hold.release(); this._hold.release();