mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-02-17 00:40:56 -05:00
Fixing some bugs in the geoip and language detection stuff.
This commit is contained in:
parent
1bfef7c4ff
commit
fc0a6513f3
2 changed files with 5 additions and 3 deletions
|
@ -202,7 +202,7 @@ module.exports.makeNewUser = makeNewUser = (req) ->
|
|||
user.set 'testGroupNumber', Math.floor(Math.random() * 256) # also in app/core/auth
|
||||
lang = languages.languageCodeFromAcceptedLanguages req.acceptedLanguages
|
||||
user.set 'preferredLanguage', lang if lang[...2] isnt 'en'
|
||||
user.set 'lastIP', req.connection.remoteAddress
|
||||
user.set 'lastIP', (req.headers['x-forwarded-for'] or req.connection.remoteAddress)?.split(' ')[0]
|
||||
user.set 'chinaVersion', true if req.chinaVersion
|
||||
log.info "making new user #{user.get('_id')} with language #{user.get('preferredLanguage')} of #{req.acceptedLanguages} and chinaVersion #{req.chinaVersion} on #{if config.tokyo then 'Tokyo' else 'US'} server and lastIP #{req.connection.remoteAddress}."
|
||||
user
|
||||
|
|
|
@ -80,12 +80,14 @@ setupPassportMiddleware = (app) ->
|
|||
|
||||
setupChinaRedirectMiddleware = (app) ->
|
||||
shouldRedirectToChinaVersion = (req) ->
|
||||
speaksChinese = req.acceptedLanguages[0]?.indexOf('zh') isnt -1
|
||||
firstLanguage = req.acceptedLanguages[0]
|
||||
speaksChinese = firstLanguage and firstLanguage.indexOf('zh') isnt -1
|
||||
unless config.tokyo
|
||||
ip = req.headers['x-forwarded-for'] or req.connection.remoteAddress
|
||||
ip = ip?.split(' ')[0] # If there are two IP addresses, say because of CloudFlare, we just take the first.
|
||||
geo = geoip.lookup(ip)
|
||||
if speaksChinese or geo?.country is "CN"
|
||||
log.info("Should we redirect to Tokyo server? speaksChinese: #{speaksChinese}, acceptedLanguages: #{req.acceptedLanguages[0]}, ip: #{ip}, geo: #{geo} -- so redirecting? #{geo?.country is 'CN' and speaksChinese}")
|
||||
log.info("Should we redirect to Tokyo server? speaksChinese: #{speaksChinese}, firstLanguage: #{firstLanguage}, ip: #{ip}, geo: #{geo} -- so redirecting? #{geo?.country is 'CN' and speaksChinese}")
|
||||
return geo?.country is "CN" and speaksChinese
|
||||
else
|
||||
log.info("We are on Tokyo server. speaksChinese: #{speaksChinese}, acceptedLanguages: #{req.acceptedLanguages[0]}")
|
||||
|
|
Loading…
Reference in a new issue