Record an IP as known for a user.
(&self, user_id: &str, ip: &str)
| 151 | |
| 152 | /// Record an IP as known for a user. |
| 153 | fn record_ip(&self, user_id: &str, ip: &str) { |
| 154 | let mut known = self.known_ips.write().unwrap_or_else(|p| p.into_inner()); |
| 155 | let ips = known.entry(user_id.into()).or_default(); |
| 156 | if !ips.contains(&ip.to_string()) { |
| 157 | // Keep max 50 IPs per user. |
| 158 | if ips.len() >= 50 { |
| 159 | ips.remove(0); |
| 160 | } |
| 161 | ips.push(ip.to_string()); |
| 162 | } |
| 163 | } |
| 164 | } |
| 165 | |
| 166 | impl Default for RiskScorer { |