Grails geo - инициализатор местоположения - PullRequest
1 голос
/ 16 ноября 2011

Мы разрабатываем наш проект в Grails.И мы хотим показывать пользователю данные в соответствии со страной, откуда они получают доступ к нашему веб-сайту.У меня есть поле, где я храню местонахождение страны.Используя плагин geoip grails.

Мой вопрос заключается в том, можем ли мы инициализировать сеанс с названием страны, из которой выполняется доступ к сайту, до того, как он достигнет какого-либо контроллера / действия, скажем, в каком-либо файле конфигурации или где-то еще.1003 *

1 Ответ

3 голосов
/ 16 ноября 2011

Вы должны быть в состоянии сделать это в Фильтре .Примерно так, помещенный в grails-app/conf как GeoFilters.groovy:

class GeoFilters {
  def geoIpService

  def filters = {
    countryCheck(controller:'*', action:'*') {
      before = {
        if( !session.geolocation ) {
          session.geolocation = geoIpService.getLocation( request.remoteAddr )
        }
      }
    }
  }
}

Должен (хотя я не пробовал) проверить, существует ли geolocation в сеансе и нет, он должен получить его из geoIpService.

...