Merge pull request #932 from JeffreyWay/feature/auth_attempt_extend

Extend Auth::Attempt()
This commit is contained in:
Taylor Otwell 2012-07-19 13:41:33 -07:00
commit c937f98b49
2 changed files with 29 additions and 15 deletions

View File

@ -25,13 +25,20 @@ public function retrieve($id)
* @return void
*/
public function attempt($arguments = array())
{
$user = $this->model()->where(function($query) use($arguments)
{
$username = Config::get('auth.username');
$user = $this->model()->where($username, '=', $arguments['username'])->first();
$query->where($username, '=', $arguments['username']);
// This driver uses a basic username and password authentication scheme
// so if the credentials match what is in the database we will just
foreach(array_except($arguments, array('username', 'password', 'remember')) as $column => $val)
{
$query->where($column, '=', $val);
}
})->first();
// 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'];

View File

@ -30,10 +30,9 @@ public function retrieve($id)
*/
public function attempt($arguments = array())
{
$user = $this->get_user($arguments['username']);
$user = $this->get_user($arguments);
// This driver uses a basic username and password authentication scheme
// so if the credentials match what is in the database we will just
// 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'];
@ -48,18 +47,26 @@ public function attempt($arguments = array())
}
/**
* Get the user from the database table by username.
* Get the user from the database table.
*
* @param mixed $value
* @param array $arguments
* @return mixed
*/
protected function get_user($value)
protected function get_user($arguments)
{
$table = Config::get('auth.table');
return DB::table($table)->where(function($query) use($arguments)
{
$username = Config::get('auth.username');
return DB::table($table)->where($username, '=', $value)->first();
$query->where($username, '=', $arguments['username']);
foreach(array_except($arguments, array('username', 'password', 'remember')) as $column => $val)
{
$query->where($column, '=', $val);
}
})->first();
}
}