Fixed social auth login audit log messages

Was logging the whole social account instance instead of just the
method.
Updated tests to cover.

Fixes #2930
This commit is contained in:
Dan Brown 2021-09-15 20:55:10 +01:00
parent 8565187138
commit 8a7408bd31
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
3 changed files with 8 additions and 2 deletions

View File

@ -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('/');
}

View File

@ -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()

View File

@ -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);
}
}