mirror of
https://github.com/umami-software/umami.git
synced 2026-02-19 12:05:41 +01:00
Merge pull request #8 from autodity/fix/add-customer-location-umami
feat(customize-header): add customize header
This commit is contained in:
commit
31a2d5ec8e
1 changed files with 37 additions and 0 deletions
|
|
@ -76,6 +76,43 @@ export async function getLocation(ip: string, req: NextApiRequestCollect) {
|
||||||
log('Localhost:', ip);
|
log('Localhost:', ip);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
const envHeaders = {
|
||||||
|
country: process.env.X_UMAMI_IP_COUNTRY?.toLowerCase(),
|
||||||
|
region: process.env.X_UMAMI_IP_COUNTRY_REGION?.toLowerCase(),
|
||||||
|
city: process.env.X_UMAMI_IP_CITY?.toLowerCase(),
|
||||||
|
lat: process.env.X_UMAMI_IP_LATITUDE?.toLowerCase(),
|
||||||
|
lng: process.env.X_UMAMI_IP_LONGITUDE?.toLowerCase(),
|
||||||
|
};
|
||||||
|
|
||||||
|
const hasCustomHeaders =
|
||||||
|
envHeaders.country &&
|
||||||
|
envHeaders.region &&
|
||||||
|
envHeaders.city &&
|
||||||
|
envHeaders.lat &&
|
||||||
|
envHeaders.lng &&
|
||||||
|
req.headers[envHeaders.country] &&
|
||||||
|
req.headers[envHeaders.region] &&
|
||||||
|
req.headers[envHeaders.city] &&
|
||||||
|
req.headers[envHeaders.lat] &&
|
||||||
|
req.headers[envHeaders.lng];
|
||||||
|
|
||||||
|
if (hasCustomHeaders) {
|
||||||
|
log('Use custom headers');
|
||||||
|
|
||||||
|
const country = safeDecodeURIComponent(req.headers[envHeaders.country]);
|
||||||
|
const subdivision1Raw = safeDecodeURIComponent(req.headers[envHeaders.region]);
|
||||||
|
const city = safeDecodeURIComponent(req.headers[envHeaders.city]);
|
||||||
|
const lat = parseFloat(safeDecodeURIComponent(req.headers[envHeaders.lat]));
|
||||||
|
const lng = parseFloat(safeDecodeURIComponent(req.headers[envHeaders.lng]));
|
||||||
|
|
||||||
|
return {
|
||||||
|
country,
|
||||||
|
subdivision1: getRegionCode(country, subdivision1Raw),
|
||||||
|
city,
|
||||||
|
lat,
|
||||||
|
lng,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// Cloudflare headers
|
// Cloudflare headers
|
||||||
if (req.headers['cf-ipcountry']) {
|
if (req.headers['cf-ipcountry']) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue