Browse Source

Allow Auth::login() to work with objects for the Eloquent driver.

Franz Liedke 12 years ago
parent
commit
9572329c49
1 changed files with 8 additions and 2 deletions
  1. 8 2
      laravel/auth/drivers/eloquent.php

+ 8 - 2
laravel/auth/drivers/eloquent.php

@@ -7,15 +7,21 @@ class Eloquent extends Driver {
 	 *
 	 *
 	 * If the user is a guest, null should be returned.
 	 * If the user is a guest, null should be returned.
 	 *
 	 *
-	 * @param  int         $id
+	 * @param  int|object  $token
 	 * @return mixed|null
 	 * @return mixed|null
 	 */
 	 */
-	public function retrieve($id)
+	public function retrieve($token)
 	{
 	{
+		// We return an object here either if the passed token is an integer (ID)
+		// or if we are passed a model object of the correct type
 		if (filter_var($id, FILTER_VALIDATE_INT) !== false)
 		if (filter_var($id, FILTER_VALIDATE_INT) !== false)
 		{
 		{
 			return $this->model()->find($id);
 			return $this->model()->find($id);
 		}
 		}
+		else if (get_class($id) == Config::get('auth.model'))
+		{
+			return $id;
+		}
 	}
 	}
 
 
 	/**
 	/**