diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index 37627d79fc..d99776e560 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -223,7 +223,12 @@ $createSession = function (string $userId, string $secret, Request $request, Res throw new Exception(Exception::GENERAL_SERVER_ERROR, 'Failed saving user to DB'); } - if ($project->getAttribute('auths', [])['sessionAlerts'] ?? false) { + $sessionAlertsEnabled = $project->getAttribute('auths', [])['sessionAlerts'] ?? false; + $isFirstSession = $dbForProject->count('sessions', [ + Query::equal('userId', [$user->getId()]), + ]) === 1; + + if ($sessionAlertsEnabled && !$isFirstSession) { sendSessionAlert($locale, $user, $project, $session, $queueForMails); } @@ -903,10 +908,16 @@ App::post('/v1/account/sessions/email') ->setParam('sessionId', $session->getId()) ; - if ($project->getAttribute('auths', [])['sessionAlerts'] ?? false) { + $sessionAlertsEnabled = $project->getAttribute('auths', [])['sessionAlerts'] ?? false; + $isFirstSession = $dbForProject->count('sessions', [ + Query::equal('userId', [$user->getId()]), + ]) === 1; + + if ($sessionAlertsEnabled && !$isFirstSession) { sendSessionAlert($locale, $user, $project, $session, $queueForMails); } + $response->dynamic($session, Response::MODEL_SESSION); });