Browse Source

Handles Redis password

If password is set in the config (database.php), before to issue any command it starts the Auth process, otherwise it starts with SELECT as usuale.
Pasvaz 12 years ago
parent
commit
2144637e12
1 changed files with 20 additions and 2 deletions
  1. 20 2
      laravel/redis.php

+ 20 - 2
laravel/redis.php

@@ -16,6 +16,13 @@ class Redis {
 	 */
 	protected $port;
 
+	/**
+	 * The database password, if present.
+	 *
+	 * @var string
+	 */
+	protected $password;
+
 	/**
 	 * The database number the connection selects on load.
 	 *
@@ -45,10 +52,11 @@ class Redis {
 	 * @param  int     $database
 	 * @return void
 	 */
-	public function __construct($host, $port, $database = 0)
+	public function __construct($host, $port, $password = null, $database = 0)
 	{
 		$this->host = $host;
 		$this->port = $port;
+		$this->password = $password;
 		$this->database = $database;
 	}
 
@@ -79,7 +87,12 @@ class Redis {
 
 			extract($config);
 
-			static::$databases[$name] = new static($host, $port, $database);
+			if ( ! isset($password))
+			{
+				$password = null;
+			}
+
+			static::$databases[$name] = new static($host, $port, $password, $database);
 		}
 
 		return static::$databases[$name];
@@ -153,6 +166,11 @@ class Redis {
 			throw new \Exception("Error making Redis connection: {$error} - {$message}");
 		}
 
+		if ( $this->password )
+		{
+			$this->auth($this->password);
+		}
+
 		$this->select($this->database);
 
 		return $this->connection;