diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index 92f38415c4..eb76e74401 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -650,15 +650,13 @@ App::get('/v1/account/sessions') ->label('sdk.namespace', 'account') ->label('sdk.method', 'getSessions') ->label('sdk.description', '/docs/references/account/get-sessions.md') - ->action(function ($response, $user, $locale, $geodb) { + ->action(function ($response, $user, $locale) { /** @var Appwrite\Utopia\Response $response */ /** @var Appwrite\Database\Document $user */ /** @var Utopia\Locale\Locale $locale */ - /** @var MaxMind\Db\Reader $geodb */ $tokens = $user->getAttribute('tokens', []); $sessions = []; - $index = 0; $countries = $locale->getText('countries'); $current = Auth::tokenVerify($tokens, Auth::TOKEN_TYPE_LOGIN, Auth::$secret); @@ -672,49 +670,14 @@ App::get('/v1/account/sessions') : $locale->getText('locale.country.unknown')); $token->setAttribute('current', ($current == $token->getId()) ? true : false); - $dd = new DeviceDetector($userAgent); - - // OPTIONAL: If called, bot detection will completely be skipped (bots will be detected as regular devices then) - // $dd->skipBotDetection(); - - $dd->parse(); - - $sessions[$index] = [ - '$id' => $token->getId(), - 'OS' => $dd->getOs(), - 'client' => $dd->getClient(), - 'device' => $dd->getDevice(), - 'brand' => $dd->getBrand(), - 'model' => $dd->getModel(), - 'ip' => $token->getAttribute('ip', ''), - 'geo' => [], - 'current' => ($current == $token->getId()) ? true : false, - ]; - - try { - $record = $geodb->get($token->getAttribute('ip', '')); - - if ($record) { - $sessions[$index]['geo']['isoCode'] = \strtolower($record['country']['iso_code']); - $sessions[$index]['geo']['country'] = (isset($countries[$record['country']['iso_code']])) ? $countries[$record['country']['iso_code']] : $locale->getText('locale.country.unknown'); - } else { - $sessions[$index]['geo']['isoCode'] = '--'; - $sessions[$index]['geo']['country'] = $locale->getText('locale.country.unknown'); - } - - } catch (\Exception $e) { - $sessions[$index]['geo']['isoCode'] = '--'; - $sessions[$index]['geo']['country'] = $locale->getText('locale.country.unknown'); - } - - ++$index; + $sessions[] = $token; } $response->dynamic(new Document([ 'sum' => count($sessions), 'sessions' => $sessions ]), Response::MODEL_SESSION_LIST); - }, ['response', 'user', 'locale', 'geodb']); + }, ['response', 'user', 'locale']); App::get('/v1/account/logs') ->desc('Get Account Logs') @@ -802,13 +765,12 @@ App::get('/v1/account/logs') $record = $geodb->get($log['ip']); if ($record) { - $output[$i]['geo']['isoCode'] = \strtolower($record['country']['iso_code']); - $output[$i]['geo']['country'] = (isset($countries[$record['country']['iso_code']])) ? $countries[$record['country']['iso_code']] : $locale->getText('locale.country.unknown'); + $output[$i]['countryCode'] = \strtolower($record['country']['iso_code']); + $output[$i]['countryCode'] = (isset($countries[$record['country']['iso_code']])) ? $countries[$record['country']['iso_code']] : $locale->getText('locale.country.unknown'); } else { - $output[$i]['geo']['isoCode'] = '--'; - $output[$i]['geo']['country'] = $locale->getText('locale.country.unknown'); + $output[$i]['countryCode'] = '--'; + $output[$i]['countryCode'] = $locale->getText('locale.country.unknown'); } - } catch (\Exception $e) { $output[$i]->setAttribute('countryCode', '--'); $output[$i]->setAttribute('countryName', $locale->getText('locale.country.unknown')); diff --git a/app/controllers/api/users.php b/app/controllers/api/users.php index 7a7b57ff0d..69c5e0c3b9 100644 --- a/app/controllers/api/users.php +++ b/app/controllers/api/users.php @@ -163,7 +163,6 @@ App::get('/v1/users/:userId/sessions') /** @var Appwrite\Utopia\Response $response */ /** @var Appwrite\Database\Database $projectDB */ /** @var Utopia\Locale\Locale $locale */ - /** @var MaxMind\Db\Reader $geodb */ $user = $projectDB->getDocument($userId); @@ -185,34 +184,7 @@ App::get('/v1/users/:userId/sessions') : $locale->getText('locale.country.unknown')); $token->setAttribute('current', false); - $sessions[$index] = [ - '$id' => $token->getId(), - 'OS' => $dd->getOs(), - 'client' => $dd->getClient(), - 'device' => $dd->getDevice(), - 'brand' => $dd->getBrand(), - 'model' => $dd->getModel(), - 'ip' => $token->getAttribute('ip', ''), - 'geo' => [], - ]; - - try { - $record = $geodb->get($token->getAttribute('ip', '')); - - if ($record) { - $sessions[$index]['geo']['isoCode'] = \strtolower($record['country']['iso_code']); - $sessions[$index]['geo']['country'] = (isset($countries[$record['country']['iso_code']])) ? $countries[$record['country']['iso_code']] : $locale->getText('locale.country.unknown'); - } else { - $sessions[$index]['geo']['isoCode'] = '--'; - $sessions[$index]['geo']['country'] = $locale->getText('locale.country.unknown'); - } - - } catch (\Exception $e) { - $sessions[$index]['geo']['isoCode'] = '--'; - $sessions[$index]['geo']['country'] = $locale->getText('locale.country.unknown'); - } - - ++$index; + $sessions[] = $token; } $response->dynamic(new Document([ @@ -316,13 +288,12 @@ App::get('/v1/users/:userId/logs') $record = $geodb->get($log['ip']); if($record){ - $output[$i]['geo']['isoCode'] = \strtolower($record['country']['iso_code']); - $output[$i]['geo']['country'] = (isset($countries[$record['country']['iso_code']])) ? $countries[$record['country']['iso_code']] : $locale->getText('locale.country.unknown'); + $output[$i]['countryCode'] = \strtolower($record['country']['iso_code']); + $output[$i]['countryName'] = (isset($countries[$record['country']['iso_code']])) ? $countries[$record['country']['iso_code']] : $locale->getText('locale.country.unknown'); } else{ - $output[$i]['geo']['isoCode'] = '--'; - $output[$i]['geo']['country'] = $locale->getText('locale.country.unknown'); + $output[$i]['countryCode'] = '--'; + $output[$i]['countryName'] = $locale->getText('locale.country.unknown'); } - } catch (\Exception $e) { $output[$i]->setAttribute('countryCode', '--'); $output[$i]->setAttribute('countryName', $locale->getText('locale.country.unknown'));