1
0
Fork 0
mirror of synced 2024-09-09 14:21:24 +12:00

Fix race condition

This commit is contained in:
Matej Bačo 2023-04-26 13:51:19 +02:00
parent a7f81bd628
commit 837cebcdda

View file

@ -76,6 +76,7 @@ $getUserGitHub = function (Document $user, Document $project, Database $dbForPro
$oauth2 = new $className($appId, $appSecret, '', [], []); $oauth2 = new $className($appId, $appSecret, '', [], []);
try {
$oauth2->refreshTokens($refreshToken); $oauth2->refreshTokens($refreshToken);
$accessToken = $oauth2->getAccessToken(''); $accessToken = $oauth2->getAccessToken('');
@ -89,6 +90,12 @@ $getUserGitHub = function (Document $user, Document $project, Database $dbForPro
Authorization::skip(fn () => $dbForProject->updateDocument('sessions', $session->getId(), $session)); Authorization::skip(fn () => $dbForProject->updateDocument('sessions', $session->getId(), $session));
$dbForProject->deleteCachedDocument('users', $user->getId()); $dbForProject->deleteCachedDocument('users', $user->getId());
} catch (Throwable $err) {
// Race contition
$sessions = $user->getAttribute('sessions', []);
$session = $sessions[0] ?? new Document();
$accessToken = $session->getAttribute('providerAccessToken');
}
$githubUser = $oauth2->getUserSlug($accessToken); $githubUser = $oauth2->getUserSlug($accessToken);
$githubId = $oauth2->getUserID($accessToken); $githubId = $oauth2->getUserID($accessToken);
@ -474,9 +481,9 @@ App::get('/v1/cards/cloud')
->desc('Get Front Of Cloud Card') ->desc('Get Front Of Cloud Card')
->groups(['api', 'avatars']) ->groups(['api', 'avatars'])
->label('scope', 'avatars.read') ->label('scope', 'avatars.read')
->label('cache', true) // ->label('cache', true)
->label('cache.resourceType', 'cards/cloud') // ->label('cache.resourceType', 'cards/cloud')
->label('cache.resource', 'card/{request.userId}') // ->label('cache.resource', 'card/{request.userId}')
->label('docs', false) ->label('docs', false)
->label('origin', '*') ->label('origin', '*')
->param('userId', '', new UID(), 'User ID.', true) ->param('userId', '', new UID(), 'User ID.', true)
@ -649,9 +656,9 @@ App::get('/v1/cards/cloud-back')
->desc('Get Back Of Cloud Card') ->desc('Get Back Of Cloud Card')
->groups(['api', 'avatars']) ->groups(['api', 'avatars'])
->label('scope', 'avatars.read') ->label('scope', 'avatars.read')
->label('cache', true) // ->label('cache', true)
->label('cache.resourceType', 'cards/cloud-back') // ->label('cache.resourceType', 'cards/cloud-back')
->label('cache.resource', 'card/{request.userId}') // ->label('cache.resource', 'card/{request.userId}')
->label('docs', false) ->label('docs', false)
->label('origin', '*') ->label('origin', '*')
->param('userId', '', new UID(), 'User ID.', true) ->param('userId', '', new UID(), 'User ID.', true)