Kaynağa Gözat

* add 'doAuthDance()' to allow code reuse from SvnDownloader and SvnDriver

till 13 yıl önce
ebeveyn
işleme
0d6297f235
1 değiştirilmiş dosya ile 35 ekleme ve 1 silme
  1. 35 1
      src/Composer/Util/Svn.php

+ 35 - 1
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 '';