Browse Source

Merge pull request #707 from cviebrock/auth-pass-field

Allow password field to be configured for Authentication drivers
Taylor Otwell 12 years ago
parent
commit
8205a21965
3 changed files with 22 additions and 5 deletions
  1. 13 0
      application/config/auth.php
  2. 3 1
      laravel/auth/drivers/eloquent.php
  3. 6 4
      laravel/auth/drivers/fluent.php

+ 13 - 0
application/config/auth.php

@@ -31,6 +31,19 @@ return array(
 
 	'username' => 'email',
 
+	/*
+	|--------------------------------------------------------------------------
+	| Authentication Password
+	|--------------------------------------------------------------------------
+	|
+	| Here you may specify the database column that should be considered the
+	| "password" for your users. Typically, this will be "password" but, again
+	| you're free to change the value to anything.
+	|
+	*/
+
+	'password' => 'password',
+
 	/*
 	|--------------------------------------------------------------------------
 	| Authentication Model

+ 3 - 1
laravel/auth/drivers/eloquent.php

@@ -35,7 +35,9 @@ class Eloquent extends Driver {
 		// log the user into the application and remember them if asked.
 		$password = $arguments['password'];
 
-		if ( ! is_null($user) and Hash::check($password, $user->password))
+		$password_field = Config::get('auth.password');
+
+		if ( ! is_null($user) and Hash::check($password, $user->get_attribute($password_field)))
 		{
 			return $this->login($user->id, array_get($arguments, 'remember'));
 		}

+ 6 - 4
laravel/auth/drivers/fluent.php

@@ -19,7 +19,7 @@ class Fluent extends Driver {
 		if (filter_var($id, FILTER_VALIDATE_INT) !== false)
 		{
 			return DB::table(Config::get('auth.table'))->find($id);
-		} 
+		}
 	}
 
 	/**
@@ -33,11 +33,13 @@ class Fluent extends Driver {
 		$user = $this->get_user($arguments['username']);
 
 		// This driver uses a basic username and password authentication scheme
-		// so if the credentials mmatch what is in the database we will just
+		// so if the credentials match what is in the database we will just
 		// log the user into the application and remember them if asked.
 		$password = $arguments['password'];
 
-		if ( ! is_null($user) and Hash::check($password, $user->password))
+		$password_field = Config::get('auth.password');
+
+		if ( ! is_null($user) and Hash::check($password, $user->{$password_field}))
 		{
 			return $this->login($user->id, array_get($arguments, 'remember'));
 		}
@@ -60,4 +62,4 @@ class Fluent extends Driver {
 		return DB::table($table)->where($username, '=', $value)->first();
 	}
 
-}
+}