diff --git a/assets/config.php b/assets/config.php index b12cd6c4..42e972be 100644 --- a/assets/config.php +++ b/assets/config.php @@ -32,6 +32,7 @@ return [ Stancl\Tenancy\Bootstrappers\CacheTenancyBootstrapper::class, Stancl\Tenancy\Bootstrappers\FilesystemTenancyBootstrapper::class, Stancl\Tenancy\Bootstrappers\QueueTenancyBootstrapper::class, + Stancl\Tenancy\Bootstrappers\AuthTenancyBootstrapper::class, // Stancl\Tenancy\Bootstrappers\RedisTenancyBootstrapper::class, // Note: phpredis is needed ], diff --git a/src/Bootstrappers/AuthTenancyBootstrapper.php b/src/Bootstrappers/AuthTenancyBootstrapper.php new file mode 100644 index 00000000..94189062 --- /dev/null +++ b/src/Bootstrappers/AuthTenancyBootstrapper.php @@ -0,0 +1,21 @@ +assertEquals($expected_storage_path, $new_storage_path); } - protected function getDiskPrefix(string $disk): string - { - /** @var FilesystemAdapter $disk */ - $disk = Storage::disk($disk); - $adapter = $disk->getAdapter(); + /** + * @test + */ + public function it_resets_the_auth_password_singleton_after_tenant_switch(): void { + config(['tenancy.bootstrappers' => [ + AuthTenancyBootstrapper::class, + ]]); + + $tenant1 = Tenant::create(); + $tenant2 = Tenant::create(); + + tenancy()->initialize($tenant1); + $manager = app('auth.password'); + tenancy()->end(); + tenancy()->initialize($tenant2); + $manager2 = app('auth.password'); + + $this->assertFalse($manager === $manager2); + } + + protected function getDiskPrefix(string $disk): string + { + /** @var FilesystemAdapter $disk */ + $disk = Storage::disk($disk); + $adapter = $disk->getAdapter(); if (! Str::startsWith(app()->version(), '9.')) { return $adapter->getPathPrefix();