Skip to content

Commit 30bb30c

Browse files
committed
Overwrite registerPasswordBroker with custom broker
1 parent c3ea71b commit 30bb30c

File tree

5 files changed

+62
-7
lines changed

5 files changed

+62
-7
lines changed

src/Jenssegers/Mongodb/Auth/DatabaseTokenRepository.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
<?php namespace Jenssegers\Mongodb\Auth;
22

3+
use Illuminate\Auth\Passwords\DatabaseTokenRepository as BaseDatabaseTokenRepository;
34
use MongoDB\BSON\UTCDateTime;
45

5-
class DatabaseTokenRepository extends \Illuminate\Auth\Passwords\DatabaseTokenRepository
6+
class DatabaseTokenRepository extends BaseDatabaseTokenRepository
67
{
78
/**
89
* Build the record payload for the table.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php namespace Jenssegers\Mongodb\Auth;
2+
3+
use Illuminate\Auth\Passwords\PasswordBrokerManager as BasePasswordBrokerManager;
4+
5+
class PasswordBrokerManager extends BasePasswordBrokerManager
6+
{
7+
/**
8+
* Create a token repository instance based on the given configuration.
9+
*
10+
* @param array $config
11+
* @return \Illuminate\Auth\Passwords\TokenRepositoryInterface
12+
*/
13+
protected function createTokenRepository(array $config)
14+
{
15+
return new DatabaseTokenRepository(
16+
$this->app['db']->connection(),
17+
$config['table'],
18+
$this->app['config']['app.key'],
19+
$config['expire']
20+
);
21+
}
22+
}

src/Jenssegers/Mongodb/Auth/PasswordResetServiceProvider.php

+19-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?php namespace Jenssegers\Mongodb\Auth;
22

3-
use Jenssegers\Mongodb\Auth\DatabaseTokenRepository as DbRepository;
3+
use Illuminate\Auth\Passwords\PasswordResetServiceProvider as BasePasswordResetServiceProvider;
44

5-
class PasswordResetServiceProvider extends \Illuminate\Auth\Passwords\PasswordResetServiceProvider
5+
class PasswordResetServiceProvider extends BasePasswordResetServiceProvider
66
{
77
/**
88
* Register the token repository implementation.
@@ -23,7 +23,23 @@ protected function registerTokenRepository()
2323

2424
$expire = $app['config']->get('auth.password.expire', 60);
2525

26-
return new DbRepository($connection, $table, $key, $expire);
26+
return new DatabaseTokenRepository($connection, $table, $key, $expire);
27+
});
28+
}
29+
30+
/**
31+
* Register the password broker instance.
32+
*
33+
* @return void
34+
*/
35+
protected function registerPasswordBroker()
36+
{
37+
$this->app->singleton('auth.password', function ($app) {
38+
return new PasswordBrokerManager($app);
39+
});
40+
41+
$this->app->bind('auth.password.broker', function ($app) {
42+
return $app->make('auth.password')->broker();
2743
});
2844
}
2945
}

tests/AuthTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public function testAuthAttempt()
2424
$this->assertTrue(Auth::check());
2525
}
2626

27-
public function testRemind()
27+
public function testRemindOld()
2828
{
2929
if (Application::VERSION >= '5.2') {
3030
return;

tests/TestCase.php

+18-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,22 @@
22

33
class TestCase extends Orchestra\Testbench\TestCase
44
{
5+
/**
6+
* Get application providers.
7+
*
8+
* @param \Illuminate\Foundation\Application $app
9+
*
10+
* @return array
11+
*/
12+
protected function getApplicationProviders($app)
13+
{
14+
$providers = parent::getApplicationProviders($app);
15+
16+
unset($providers[array_search('Illuminate\Auth\Passwords\PasswordResetServiceProvider', $providers)]);
17+
18+
return $providers;
19+
}
20+
521
/**
622
* Get package providers.
723
*
@@ -11,8 +27,8 @@ class TestCase extends Orchestra\Testbench\TestCase
1127
protected function getPackageProviders($app)
1228
{
1329
return [
14-
'Jenssegers\Mongodb\MongodbServiceProvider',
15-
'Jenssegers\Mongodb\Auth\PasswordResetServiceProvider'
30+
Jenssegers\Mongodb\MongodbServiceProvider::class,
31+
Jenssegers\Mongodb\Auth\PasswordResetServiceProvider::class,
1632
];
1733
}
1834

0 commit comments

Comments
 (0)