Module: Otto::Privacy::Core
- Included in:
- Otto
- Defined in:
- lib/otto/privacy/core.rb
Overview
Core privacy configuration methods included in the Otto class. Provides the public API for configuring IP privacy features.
Instance Method Summary collapse
-
#configure_ip_privacy(octet_precision: nil, hash_rotation: nil, geo: nil, redis: nil) ⇒ Object
Configure IP privacy settings.
-
#disable_ip_privacy! ⇒ Object
Disable IP privacy to access original IP addresses.
-
#enable_full_ip_privacy! ⇒ void
Enable full IP privacy (mask ALL IPs including private/localhost).
Instance Method Details
#configure_ip_privacy(octet_precision: nil, hash_rotation: nil, geo: nil, redis: nil) ⇒ Object
Configure IP privacy settings
Privacy is enabled by default. Use this method to customize privacy behavior without disabling it entirely.
68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/otto/privacy/core.rb', line 68 def configure_ip_privacy(octet_precision: nil, hash_rotation: nil, geo: nil, redis: nil) ensure_not_frozen! config = @security_config.ip_privacy_config config.octet_precision = octet_precision if octet_precision config.hash_rotation_period = hash_rotation if hash_rotation config.geo_enabled = geo unless geo.nil? config.instance_variable_set(:@redis, redis) if redis # Validate configuration config.validate! end |
#disable_ip_privacy! ⇒ Object
Disable IP privacy to access original IP addresses
IMPORTANT: By default, Otto masks public IP addresses for privacy. Private/localhost IPs (127.0.0.0/8, 10.0.0.0/8, etc.) are never masked. Only disable this if you need access to original public IPs.
When disabled:
23 24 25 26 |
# File 'lib/otto/privacy/core.rb', line 23 def disable_ip_privacy! ensure_not_frozen! @security_config.ip_privacy_config.disable! end |
#enable_full_ip_privacy! ⇒ void
This method returns an undefined value.
Enable full IP privacy (mask ALL IPs including private/localhost)
By default, Otto exempts private and localhost IPs from masking for better development experience. Call this method to mask ALL IPs regardless of type.
41 42 43 44 |
# File 'lib/otto/privacy/core.rb', line 41 def enable_full_ip_privacy! ensure_not_frozen! @security_config.ip_privacy_config.mask_private_ips = true end |