mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-01-03 23:42:28 +03:00
Avatars: Added redirect handling image fetching
Up to 3 times. Can be needed based upon testing with Auth0. Should be fine as long as it's something clearly documented. Added test to cover.
This commit is contained in:
@@ -536,6 +536,28 @@ class OidcTest extends TestCase
|
||||
$this->assertEquals($originalImageData, $newAvatarData);
|
||||
}
|
||||
|
||||
public function test_user_avatar_fetch_follows_up_to_three_redirects()
|
||||
{
|
||||
config()->set(['oidc.fetch_avatar' => true]);
|
||||
|
||||
$logger = $this->withTestLogger();
|
||||
|
||||
$this->runLogin([
|
||||
'email' => 'avatar@example.com',
|
||||
'picture' => 'https://example.com/my-avatar.jpg',
|
||||
], [
|
||||
new Response(302, ['Location' => 'https://example.com/a']),
|
||||
new Response(302, ['Location' => 'https://example.com/b']),
|
||||
new Response(302, ['Location' => 'https://example.com/c']),
|
||||
new Response(302, ['Location' => 'https://example.com/d']),
|
||||
]);
|
||||
|
||||
$user = User::query()->where('email', '=', 'avatar@example.com')->first();
|
||||
$this->assertFalse($user->avatar()->exists());
|
||||
|
||||
$this->assertStringContainsString('"Failed to fetch image, max redirect limit of 3 tries reached. Last fetched URL: https://example.com/c"', $logger->getRecords()[0]->formatted);
|
||||
}
|
||||
|
||||
public function test_login_group_sync()
|
||||
{
|
||||
config()->set([
|
||||
|
||||
Reference in New Issue
Block a user