Отключить регистрацию IP-адресов с помощью устройства - PullRequest
0 голосов
/ 03 мая 2018

Я сейчас нахожусь в процессе удаления регистрации IP-адресов из нашего приложения, мне было интересно, как лучше всего это сделать с помощью Devise?

Ответы [ 2 ]

0 голосов
/ 13 мая 2018

Ваш ответ выглядит хорошо, но если вы хотите отслеживать IP только для определенных пользователей, одна (менее многословная, но, возможно, более запутанная) альтернатива может быть ...

protected

# Override Devise logic for IP tracking
# https://github.com/plataformatec/devise/blob/master/lib/devise/models/trackable.rb#L45
def extract_ip_from(request)
  # Only track the IP for admin users (per GDPR rules).
  request.remote_ip if admin?
end

Это может привести к установке nil IP для пользователей без прав администратора.

0 голосов
/ 03 мая 2018

Добавление этого метода в модель пользователя может позволить вам быть избирательным в том, что вы отслеживаете, в моем случае я избирателен в том, что я отслеживаю IP-адреса:

  def update_tracked_fields(request)
    old_current = current_sign_in_at
    new_current = Time.now.utc
    self.last_sign_in_at     = old_current || new_current
    self.current_sign_in_at  = new_current

    if admin?
      old_current = current_sign_in_ip
      new_current = request.remote_ip
      self.last_sign_in_ip     = old_current || new_current
      self.current_sign_in_ip  = new_current
    end

    self.sign_in_count ||= 0
    self.sign_in_count += 1
  end
...