diff --git a/src/Composer/Util/Svn.php b/src/Composer/Util/Svn.php index b7b45790b..f09fedd7c 100644 --- a/src/Composer/Util/Svn.php +++ b/src/Composer/Util/Svn.php @@ -39,6 +39,11 @@ class Svn */ protected $url; + /** + * @var bool $useCache Cache credentials. + */ + protected $useCache = false; + /** * __construct * @@ -53,14 +58,43 @@ class Svn $this->io = $io; } + /** + * doAuthDance + * + * Repositories requests credentials, let's put them in. + * + * @return \Composer\Util\Svn + * @uses self::$io + * @uses self::$hasAuth + * @uses self::$credentials + * @uses self::$useCache + */ + public function doAuthDance() + { + $this->io->write("The Subversion server ({$this->url}) requested credentials:"); + + $this->hasAuth = true; + $this->credentials = new \stdClass(); + + $this->credentials->username = $this->io->ask("Username: "); + $this->credentials->password = $this->io->askAndHideAnswer("Password: "); + + $pleaseCache = $this->io->askConfirmation("Should Subversion cache these credentials? (yes/no) ", false); + if ($pleaseCache === true) { + $this->useCache = true; + } + return $this; + } /** * Return the no-auth-cache switch. * * @return string + * @uses selfg::$useCache + * @see self::doAuthDance() */ public function getAuthCache() { - if (!$this->hasCache) { + if (!$this->useCache) { return '--no-auth-cache '; } return '';