Author: jkupec
Date: Sun Sep 28 12:44:51 2008
New Revision: 11190
URL: http://svn.opensuse.org/viewcvs/zypp?rev=11190&view=rev
Log:
- improved authentication dialog
- fixed showing password as typed (bnc #400104)
Modified:
trunk/zypper/src/callbacks/media.h
trunk/zypper/src/output/OutNormal.cc
trunk/zypper/src/utils/prompt.cc
trunk/zypper/src/utils/prompt.h
Modified: trunk/zypper/src/callbacks/media.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/callbacks/media.h?rev=11190&r1=11189&r2=11190&view=diff
==============================================================================
--- trunk/zypper/src/callbacks/media.h (original)
+++ trunk/zypper/src/callbacks/media.h Sun Sep 28 12:44:51 2008
@@ -217,20 +217,36 @@
dynamic_castzypp::media::CurlAuthData* (&auth_data);
if (auth_data_ptr)
{
-//! \todo move this to prompt help once it's done
-// cout_vv << "available auth types: "
-// << auth_data_ptr->authTypeAsString() << std::endl;
-
- Zypper::instance()->out().prompt(
- PROMPT_AUTH_USERNAME, description, PromptOptions(_("User Name"), 0));
+
+ // user name
+
std::string username;
- std::cin >> username;
- auth_data_ptr->setUserName(username);
+ // expect the input from machine on stdin
+ if (Zypper::instance()->globalOpts().machine_readable)
+ {
+ Zypper::instance()->out().prompt(
+ PROMPT_AUTH_USERNAME, _("User Name"), PromptOptions(), description);
+ std::cin >> username;
+ }
+ // input from human using readline
+ else
+ {
+ std::cout << description << std::endl;
+ username = get_text(_("User Name") + std::string(": "), auth_data.username());
+ }
+ auth_data_ptr->setUsername(username);
+ // password
+
Zypper::instance()->out().prompt(
- PROMPT_AUTH_PASSWORD, description, PromptOptions(_("Password"), 0));
+ PROMPT_AUTH_PASSWORD, _("Password"), PromptOptions());
+
std::string password;
- std::cin >> password;
+ // expect the input from machine on stdin
+ if (Zypper::instance()->globalOpts().machine_readable)
+ std::cin >> password;
+ else
+ password = get_password();
if (password.empty()) return false;
auth_data_ptr->setPassword(password);
Modified: trunk/zypper/src/output/OutNormal.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/output/OutNormal.cc?rev=11190&r1=11189&r2=11190&view=diff
==============================================================================
--- trunk/zypper/src/output/OutNormal.cc (original)
+++ trunk/zypper/src/output/OutNormal.cc Sun Sep 28 12:44:51 2008
@@ -237,7 +237,10 @@
cout << CLEARLN;
else
cout << startdesc << endl;
- cout << prompt << " [" << poptions.optionString() << "]: " << std::flush;
+ cout << prompt;
+ if (!poptions.empty())
+ cout << " [" << poptions.optionString() << "]";
+ cout << ": " << std::flush;
}
void OutNormal::promptHelp(const PromptOptions & poptions)
Modified: trunk/zypper/src/utils/prompt.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/utils/prompt.cc?rev=11190&r1=11189&r2=11190&view=diff
==============================================================================
--- trunk/zypper/src/utils/prompt.cc (original)
+++ trunk/zypper/src/utils/prompt.cc Sun Sep 28 12:44:51 2008
@@ -2,6 +2,10 @@
#include <iostream>
#include <sstream>
#include