Skip to content

Commit fbe5152

Browse files
jasonlewistaylorotwell
authored andcommitted
Fix once basic error due to validate not setting lastAttempted. (#17500)
Signed-off-by: Jason Lewis <[email protected]>
1 parent 052e9a5 commit fbe5152

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/Illuminate/Auth/SessionGuard.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ public function onceUsingId($id)
248248
*/
249249
public function validate(array $credentials = [])
250250
{
251-
$user = $this->provider->retrieveByCredentials($credentials);
251+
$this->lastAttempted = $user = $this->provider->retrieveByCredentials($credentials);
252252

253253
return $this->hasValidCredentials($user, $credentials);
254254
}

tests/Auth/AuthGuardTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,27 @@ public function testUserUsesRememberCookieIfItExists()
359359
$this->assertTrue($guard->viaRemember());
360360
}
361361

362+
public function testLoginOnceSetsUser()
363+
{
364+
list($session, $provider, $request, $cookie) = $this->getMocks();
365+
$guard = m::mock('Illuminate\Auth\SessionGuard', ['default', $provider, $session])->makePartial();
366+
$user = m::mock('Illuminate\Contracts\Auth\Authenticatable');
367+
$guard->getProvider()->shouldReceive('retrieveByCredentials')->once()->with(['foo'])->andReturn($user);
368+
$guard->getProvider()->shouldReceive('validateCredentials')->once()->with($user, ['foo'])->andReturn(true);
369+
$guard->shouldReceive('setUser')->once()->with($user);
370+
$this->assertTrue($guard->once(['foo']));
371+
}
372+
373+
public function testLoginOnceFailure()
374+
{
375+
list($session, $provider, $request, $cookie) = $this->getMocks();
376+
$guard = m::mock('Illuminate\Auth\SessionGuard', ['default', $provider, $session])->makePartial();
377+
$user = m::mock('Illuminate\Contracts\Auth\Authenticatable');
378+
$guard->getProvider()->shouldReceive('retrieveByCredentials')->once()->with(['foo'])->andReturn($user);
379+
$guard->getProvider()->shouldReceive('validateCredentials')->once()->with($user, ['foo'])->andReturn(false);
380+
$this->assertFalse($guard->once(['foo']));
381+
}
382+
362383
protected function getGuard()
363384
{
364385
list($session, $provider, $request, $cookie) = $this->getMocks();

0 commit comments

Comments
 (0)