towerops/lib/towerops_web
Graham McIntire 6aab59dcf5
refactor: centralize LiveView access control checks
Extract duplicate access control logic from multiple LiveView files into
a reusable AccessControl helper module.

**Changes:**
- NEW: lib/towerops_web/live/helpers/access_control.ex
- NEW: test/towerops_web/live/helpers/access_control_test.exs
- Refactor device_live/index.ex to use AccessControl.verify_site_access/2
  and verify_device_access/2
- Refactor device_live/form.ex to use AccessControl.verify_device_access/2
- Refactor alert_live/index.ex to use AccessControl.verify_alert_access/2
- Refactor device_live/show.ex to use AccessControl.verify_device_access/2
- Remove unused Repo aliases from refactored files

**Benefits:**
- Reduces code duplication across 7+ locations
- Centralizes security-critical access checks
- Improves testability (helper module has >90% coverage)
- Consistent error handling across all LiveViews

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-04 17:51:05 -06:00
..
channels tcp snmp test 2026-02-04 17:28:14 -06:00
components make sites optional 2026-02-04 13:05:32 -06:00
controllers Device list bug fix 2026-02-04 16:49:17 -06:00
helpers Mikrotik backup and gettext start 2026-02-02 09:11:22 -06:00
live refactor: centralize LiveView access control checks 2026-02-04 17:51:05 -06:00
plugs snmp v3 support 2026-02-04 12:02:38 -06:00
endpoint.ex Move CaptureTimezone plug to browser pipeline 2026-02-01 11:15:51 -06:00
gettext.ex init 2025-12-21 11:10:43 -06:00
gettext_helpers.ex feat: migrate email templates to gettext (Phase 2 - Emails) 2026-02-02 09:48:30 -06:00
permissions.ex handle mikrotik ssh 2026-02-02 16:42:18 -06:00
plug_exceptions.ex handle exceptions gracefully on api endpoints 2026-02-04 12:18:14 -06:00
router.ex Mikrotik backup and gettext start 2026-02-02 09:11:22 -06:00
telemetry.ex fix: add Oban config to dev.exs and replace Exq telemetry with Oban 2026-01-24 16:39:45 -06:00
user_auth.ex feat: migrate all remaining authentication and session flash messages to gettext 2026-02-02 13:02:44 -06:00