towerops/lib
Graham McIntire 1dd6d687a7
feat: auto-grant superuser to owner email addresses
Security-hardened implementation that automatically grants superuser status
to graham@towerops.net and graham@mcintire.me during user registration.

Security measures:
- Only runs during NEW user creation (__meta__.state == :built check)
- Cannot be triggered via account updates (prevents privilege escalation)
- Case-insensitive comparison (prevents 'Graham@TOWEROPS.NET' bypass)
- Email must pass validation and uniqueness constraint first
- Explicit defense-in-depth with comprehensive security comments

Prevents scenarios where:
- Owner loses access to their own system
- Need to manually grant superuser via database manipulation
- Case variations could bypass the check

Test coverage includes:
- Both email addresses get superuser
- Case variations are handled correctly
- Similar/spoofed emails are rejected
- Other emails don't get superuser
2026-03-09 15:45:23 -05:00
..
mix/tasks feat: add check creation from discovery and backfill tool (Phase 5) 2026-02-12 17:04:06 -06:00
snmpkit fix: handle atom-based errors in MIB compiler and fix Oban test API 2026-03-05 12:05:36 -06:00
towerops feat: auto-grant superuser to owner email addresses 2026-03-09 15:45:23 -05:00
towerops_web ui: comprehensive button styling audit - convert all text-styled actions to proper buttons 2026-03-09 15:32:42 -05:00
snmp_lib.ex bring in snmpkit 2026-01-23 12:52:17 -06:00
snmp_mgr.ex credo fixes 2026-01-23 14:01:52 -06:00
snmpkit.ex complete overhaul of snmp engine 2026-01-30 10:41:07 -06:00
towerops.ex init 2025-12-21 11:10:43 -06:00
towerops_native.ex Merge remote-tracking branch 'origin/main' into feature/preseem-integration 2026-02-13 09:11:45 -06:00
towerops_web.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00