Merge branch '1.6.x' into feat-benchmark-headers
This commit is contained in:
commit
89ca56afd7
1 changed files with 16 additions and 13 deletions
|
@ -177,12 +177,6 @@ $createSession = function (string $userId, string $secret, Request $request, Res
|
||||||
default => throw new Exception(Exception::USER_INVALID_TOKEN)
|
default => throw new Exception(Exception::USER_INVALID_TOKEN)
|
||||||
});
|
});
|
||||||
|
|
||||||
$sendAlert = (match ($verifiedToken->getAttribute('type')) {
|
|
||||||
Auth::TOKEN_TYPE_MAGIC_URL,
|
|
||||||
Auth::TOKEN_TYPE_EMAIL => false,
|
|
||||||
default => true
|
|
||||||
});
|
|
||||||
|
|
||||||
$session = new Document(array_merge(
|
$session = new Document(array_merge(
|
||||||
[
|
[
|
||||||
'$id' => ID::unique(),
|
'$id' => ID::unique(),
|
||||||
|
@ -210,7 +204,6 @@ $createSession = function (string $userId, string $secret, Request $request, Res
|
||||||
Permission::delete(Role::user($user->getId())),
|
Permission::delete(Role::user($user->getId())),
|
||||||
]));
|
]));
|
||||||
|
|
||||||
$dbForProject->purgeCachedDocument('users', $user->getId());
|
|
||||||
Authorization::skip(fn () => $dbForProject->deleteDocument('tokens', $verifiedToken->getId()));
|
Authorization::skip(fn () => $dbForProject->deleteDocument('tokens', $verifiedToken->getId()));
|
||||||
$dbForProject->purgeCachedDocument('users', $user->getId());
|
$dbForProject->purgeCachedDocument('users', $user->getId());
|
||||||
|
|
||||||
|
@ -229,13 +222,23 @@ $createSession = function (string $userId, string $secret, Request $request, Res
|
||||||
throw new Exception(Exception::GENERAL_SERVER_ERROR, 'Failed saving user to DB');
|
throw new Exception(Exception::GENERAL_SERVER_ERROR, 'Failed saving user to DB');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($project->getAttribute('auths', [])['sessionAlerts'] ?? false) && $sendAlert) {
|
$isAllowedTokenType = match ($verifiedToken->getAttribute('type')) {
|
||||||
if ($dbForProject->count('sessions', [
|
Auth::TOKEN_TYPE_MAGIC_URL,
|
||||||
|
Auth::TOKEN_TYPE_EMAIL => false,
|
||||||
|
default => true
|
||||||
|
};
|
||||||
|
|
||||||
|
$hasUserEmail = $user->getAttribute('email', false) !== false;
|
||||||
|
|
||||||
|
$isSessionAlertsEnabled = $project->getAttribute('auths', [])['sessionAlerts'] ?? false;
|
||||||
|
|
||||||
|
$isNotFirstSession = $dbForProject->count('sessions', [
|
||||||
Query::equal('userId', [$user->getId()]),
|
Query::equal('userId', [$user->getId()]),
|
||||||
]) !== 1) {
|
]) !== 1;
|
||||||
|
|
||||||
|
if ($isAllowedTokenType && $hasUserEmail && $isSessionAlertsEnabled && $isNotFirstSession) {
|
||||||
sendSessionAlert($locale, $user, $project, $session, $queueForMails);
|
sendSessionAlert($locale, $user, $project, $session, $queueForMails);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$queueForEvents
|
$queueForEvents
|
||||||
->setParam('userId', $user->getId())
|
->setParam('userId', $user->getId())
|
||||||
|
|
Loading…
Reference in a new issue