Updated geo lib
This commit is contained in:
parent
713dd6ccbc
commit
1c03fb5f63
2 changed files with 12 additions and 79 deletions
|
@ -650,15 +650,13 @@ App::get('/v1/account/sessions')
|
||||||
->label('sdk.namespace', 'account')
|
->label('sdk.namespace', 'account')
|
||||||
->label('sdk.method', 'getSessions')
|
->label('sdk.method', 'getSessions')
|
||||||
->label('sdk.description', '/docs/references/account/get-sessions.md')
|
->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\Utopia\Response $response */
|
||||||
/** @var Appwrite\Database\Document $user */
|
/** @var Appwrite\Database\Document $user */
|
||||||
/** @var Utopia\Locale\Locale $locale */
|
/** @var Utopia\Locale\Locale $locale */
|
||||||
/** @var MaxMind\Db\Reader $geodb */
|
|
||||||
|
|
||||||
$tokens = $user->getAttribute('tokens', []);
|
$tokens = $user->getAttribute('tokens', []);
|
||||||
$sessions = [];
|
$sessions = [];
|
||||||
$index = 0;
|
|
||||||
$countries = $locale->getText('countries');
|
$countries = $locale->getText('countries');
|
||||||
$current = Auth::tokenVerify($tokens, Auth::TOKEN_TYPE_LOGIN, Auth::$secret);
|
$current = Auth::tokenVerify($tokens, Auth::TOKEN_TYPE_LOGIN, Auth::$secret);
|
||||||
|
|
||||||
|
@ -672,49 +670,14 @@ App::get('/v1/account/sessions')
|
||||||
: $locale->getText('locale.country.unknown'));
|
: $locale->getText('locale.country.unknown'));
|
||||||
$token->setAttribute('current', ($current == $token->getId()) ? true : false);
|
$token->setAttribute('current', ($current == $token->getId()) ? true : false);
|
||||||
|
|
||||||
$dd = new DeviceDetector($userAgent);
|
$sessions[] = $token;
|
||||||
|
|
||||||
// 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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$response->dynamic(new Document([
|
$response->dynamic(new Document([
|
||||||
'sum' => count($sessions),
|
'sum' => count($sessions),
|
||||||
'sessions' => $sessions
|
'sessions' => $sessions
|
||||||
]), Response::MODEL_SESSION_LIST);
|
]), Response::MODEL_SESSION_LIST);
|
||||||
}, ['response', 'user', 'locale', 'geodb']);
|
}, ['response', 'user', 'locale']);
|
||||||
|
|
||||||
App::get('/v1/account/logs')
|
App::get('/v1/account/logs')
|
||||||
->desc('Get Account Logs')
|
->desc('Get Account Logs')
|
||||||
|
@ -802,13 +765,12 @@ App::get('/v1/account/logs')
|
||||||
$record = $geodb->get($log['ip']);
|
$record = $geodb->get($log['ip']);
|
||||||
|
|
||||||
if ($record) {
|
if ($record) {
|
||||||
$output[$i]['geo']['isoCode'] = \strtolower($record['country']['iso_code']);
|
$output[$i]['countryCode'] = \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'] = (isset($countries[$record['country']['iso_code']])) ? $countries[$record['country']['iso_code']] : $locale->getText('locale.country.unknown');
|
||||||
} else {
|
} else {
|
||||||
$output[$i]['geo']['isoCode'] = '--';
|
$output[$i]['countryCode'] = '--';
|
||||||
$output[$i]['geo']['country'] = $locale->getText('locale.country.unknown');
|
$output[$i]['countryCode'] = $locale->getText('locale.country.unknown');
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$output[$i]->setAttribute('countryCode', '--');
|
$output[$i]->setAttribute('countryCode', '--');
|
||||||
$output[$i]->setAttribute('countryName', $locale->getText('locale.country.unknown'));
|
$output[$i]->setAttribute('countryName', $locale->getText('locale.country.unknown'));
|
||||||
|
|
|
@ -163,7 +163,6 @@ App::get('/v1/users/:userId/sessions')
|
||||||
/** @var Appwrite\Utopia\Response $response */
|
/** @var Appwrite\Utopia\Response $response */
|
||||||
/** @var Appwrite\Database\Database $projectDB */
|
/** @var Appwrite\Database\Database $projectDB */
|
||||||
/** @var Utopia\Locale\Locale $locale */
|
/** @var Utopia\Locale\Locale $locale */
|
||||||
/** @var MaxMind\Db\Reader $geodb */
|
|
||||||
|
|
||||||
$user = $projectDB->getDocument($userId);
|
$user = $projectDB->getDocument($userId);
|
||||||
|
|
||||||
|
@ -185,34 +184,7 @@ App::get('/v1/users/:userId/sessions')
|
||||||
: $locale->getText('locale.country.unknown'));
|
: $locale->getText('locale.country.unknown'));
|
||||||
$token->setAttribute('current', false);
|
$token->setAttribute('current', false);
|
||||||
|
|
||||||
$sessions[$index] = [
|
$sessions[] = $token;
|
||||||
'$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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$response->dynamic(new Document([
|
$response->dynamic(new Document([
|
||||||
|
@ -316,13 +288,12 @@ App::get('/v1/users/:userId/logs')
|
||||||
$record = $geodb->get($log['ip']);
|
$record = $geodb->get($log['ip']);
|
||||||
|
|
||||||
if($record){
|
if($record){
|
||||||
$output[$i]['geo']['isoCode'] = \strtolower($record['country']['iso_code']);
|
$output[$i]['countryCode'] = \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]['countryName'] = (isset($countries[$record['country']['iso_code']])) ? $countries[$record['country']['iso_code']] : $locale->getText('locale.country.unknown');
|
||||||
} else{
|
} else{
|
||||||
$output[$i]['geo']['isoCode'] = '--';
|
$output[$i]['countryCode'] = '--';
|
||||||
$output[$i]['geo']['country'] = $locale->getText('locale.country.unknown');
|
$output[$i]['countryName'] = $locale->getText('locale.country.unknown');
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$output[$i]->setAttribute('countryCode', '--');
|
$output[$i]->setAttribute('countryCode', '--');
|
||||||
$output[$i]->setAttribute('countryName', $locale->getText('locale.country.unknown'));
|
$output[$i]->setAttribute('countryName', $locale->getText('locale.country.unknown'));
|
||||||
|
|
Loading…
Reference in a new issue