diff --git a/app/Auth/Access/SocialAuthService.php b/app/Auth/Access/SocialAuthService.php index 8cf243fe7..d165e76b1 100644 --- a/app/Auth/Access/SocialAuthService.php +++ b/app/Auth/Access/SocialAuthService.php @@ -141,7 +141,7 @@ class SocialAuthService // When a user is not logged in and a matching SocialAccount exists, // Simply log the user into the application. if (!$isLoggedIn && $socialAccount !== null) { - $this->loginService->login($socialAccount->user, $socialAccount); + $this->loginService->login($socialAccount->user, $socialDriver); return redirect()->intended('/'); } diff --git a/tests/Auth/SocialAuthTest.php b/tests/Auth/SocialAuthTest.php index 5818cbb74..44b9e4ce1 100644 --- a/tests/Auth/SocialAuthTest.php +++ b/tests/Auth/SocialAuthTest.php @@ -2,6 +2,7 @@ namespace Tests\Auth; +use BookStack\Actions\ActivityType; use BookStack\Auth\SocialAccount; use BookStack\Auth\User; use DB; @@ -82,6 +83,7 @@ class SocialAuthTest extends TestCase ]); $resp = $this->followingRedirects()->get('/login/service/github/callback'); $resp->assertDontSee('login-form'); + $this->assertActivityExists(ActivityType::AUTH_LOGIN, null, 'github; (' . $this->getAdmin()->id . ') ' . $this->getAdmin()->name); } public function test_social_account_detach() diff --git a/tests/TestCase.php b/tests/TestCase.php index 080515173..30b07da0f 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -62,7 +62,7 @@ abstract class TestCase extends BaseTestCase * Assert that an activity entry exists of the given key. * Checks the activity belongs to the given entity if provided. */ - protected function assertActivityExists(string $type, Entity $entity = null) + protected function assertActivityExists(string $type, ?Entity $entity, ?string $detail) { $detailsToCheck = ['type' => $type]; @@ -71,6 +71,10 @@ abstract class TestCase extends BaseTestCase $detailsToCheck['entity_id'] = $entity->id; } + if ($detail) { + $detailsToCheck['detail'] = $detail; + } + $this->assertDatabaseHas('activities', $detailsToCheck); } }