diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index 6783b88f82..9402b1290d 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -147,6 +147,18 @@ $createSession = function (string $userId, string $secret, Request $request, Res 'ip' => $request->getIP(), 'factors' => [$factor], 'countryCode' => $geoRecord->getCountryCode(), + 'continentCode' => $geoRecord->getContinentCode() === '--' ? null : $geoRecord->getContinentCode(), + 'latitude' => $geoRecord->getAttribute('latitude'), + 'longitude' => $geoRecord->getAttribute('longitude'), + 'timeZone' => $geoRecord->getAttribute('timeZone'), + 'weatherCode' => $geoRecord->getAttribute('weatherCode'), + 'postalCode' => $geoRecord->getAttribute('postalCode'), + 'autonomousSystemNumber' => $geoRecord->getAttribute('autonomousSystemNumber'), + 'autonomousSystemOrganization' => $geoRecord->getAttribute('autonomousSystemOrganization'), + 'geoConnectionType' => $geoRecord->getAttribute('connection'), + 'geoUserType' => $geoRecord->getAttribute('user'), + 'geoOrganization' => $geoRecord->getAttribute('organization'), + 'isp' => $geoRecord->getAttribute('isp'), 'expire' => DateTime::addSeconds(new \DateTime(), $duration) ], $detector->getOS(), @@ -961,6 +973,18 @@ Http::post('/v1/account/sessions/email') 'ip' => $request->getIP(), 'factors' => ['password'], 'countryCode' => $geoRecord->getCountryCode(), + 'continentCode' => $geoRecord->getContinentCode() === '--' ? null : $geoRecord->getContinentCode(), + 'latitude' => $geoRecord->getAttribute('latitude'), + 'longitude' => $geoRecord->getAttribute('longitude'), + 'timeZone' => $geoRecord->getAttribute('timeZone'), + 'weatherCode' => $geoRecord->getAttribute('weatherCode'), + 'postalCode' => $geoRecord->getAttribute('postalCode'), + 'autonomousSystemNumber' => $geoRecord->getAttribute('autonomousSystemNumber'), + 'autonomousSystemOrganization' => $geoRecord->getAttribute('autonomousSystemOrganization'), + 'geoConnectionType' => $geoRecord->getAttribute('connection'), + 'geoUserType' => $geoRecord->getAttribute('user'), + 'geoOrganization' => $geoRecord->getAttribute('organization'), + 'isp' => $geoRecord->getAttribute('isp'), 'expire' => DateTime::addSeconds(new \DateTime(), $duration) ], $detector->getOS(), @@ -1142,6 +1166,18 @@ Http::post('/v1/account/sessions/anonymous') 'ip' => $request->getIP(), 'factors' => ['anonymous'], 'countryCode' => $geoRecord->getCountryCode(), + 'continentCode' => $geoRecord->getContinentCode() === '--' ? null : $geoRecord->getContinentCode(), + 'latitude' => $geoRecord->getAttribute('latitude'), + 'longitude' => $geoRecord->getAttribute('longitude'), + 'timeZone' => $geoRecord->getAttribute('timeZone'), + 'weatherCode' => $geoRecord->getAttribute('weatherCode'), + 'postalCode' => $geoRecord->getAttribute('postalCode'), + 'autonomousSystemNumber' => $geoRecord->getAttribute('autonomousSystemNumber'), + 'autonomousSystemOrganization' => $geoRecord->getAttribute('autonomousSystemOrganization'), + 'geoConnectionType' => $geoRecord->getAttribute('connection'), + 'geoUserType' => $geoRecord->getAttribute('user'), + 'geoOrganization' => $geoRecord->getAttribute('organization'), + 'isp' => $geoRecord->getAttribute('isp'), 'expire' => DateTime::addSeconds(new \DateTime(), $duration) ], $detector->getOS(), @@ -1936,6 +1972,18 @@ Http::get('/v1/account/sessions/oauth2/:provider/redirect') 'ip' => $request->getIP(), 'factors' => [TYPE::EMAIL, 'oauth2'], // include a special oauth2 factor to bypass MFA checks 'countryCode' => $geoRecord->getCountryCode(), + 'continentCode' => $geoRecord->getContinentCode() === '--' ? null : $geoRecord->getContinentCode(), + 'latitude' => $geoRecord->getAttribute('latitude'), + 'longitude' => $geoRecord->getAttribute('longitude'), + 'timeZone' => $geoRecord->getAttribute('timeZone'), + 'weatherCode' => $geoRecord->getAttribute('weatherCode'), + 'postalCode' => $geoRecord->getAttribute('postalCode'), + 'autonomousSystemNumber' => $geoRecord->getAttribute('autonomousSystemNumber'), + 'autonomousSystemOrganization' => $geoRecord->getAttribute('autonomousSystemOrganization'), + 'geoConnectionType' => $geoRecord->getAttribute('connection'), + 'geoUserType' => $geoRecord->getAttribute('user'), + 'geoOrganization' => $geoRecord->getAttribute('organization'), + 'isp' => $geoRecord->getAttribute('isp'), 'expire' => DateTime::addSeconds(new \DateTime(), $duration) ], $detector->getOS(), $detector->getClient(), $detector->getDevice()));