Commit Graph

307 Commits (e1df7d657c33bb3b814c31d48d1dd990d71fda57)

Author SHA1 Message Date
Daniel Supernault 6e13c5c116
Add alias to horizon 11 hours ago
Your Name 139b29733e fix: serve Pulse and Horizon dashboards under admin/ to avoid username route collisions
- Pulse: set PULSE_PATH default to admin/pulse; Pulse::ignoreRoutes() in
  AppServiceProvider and register the dashboard explicitly in routes/web-admin.php
  so it is matched before the {username} profile catch-all.
- Horizon: set horizon.path to admin/horizon (all Horizon routes follow); add an
  explicit base-path GET mirroring Horizon's own HomeController@index for clarity.
- Remove now-unneeded 'horizon' reservation from RestrictedNames.
- Add PULSE_ENABLED-gated Pulse links to admin sidenav and topnav.
- Replace HorizonRedirectTest with HorizonDashboardTest (base path now renders
  the dashboard directly instead of redirecting).
1 day ago
Daniel Supernault 823efcaad7
Add FEP-044f: Consent-respecting quote posts 4 days ago
Daniel Supernault 493b8de031
Add FeaturedCollections/Starter Kits support 6 days ago
Your Name 7b90bc8699 Fix remove-all follower purge chunkById key and gate the route behind dangerzone 1 week ago
Your Name ac872c12ed Use absolute path for /horizon dashboard redirect 1 week ago
Your Name 9d839f7b5a Fix missing email verification dispatch on settings email change 1 week ago
Shlee 815b138620
Add redirect for Horizon dashboard
Redirect admins from /horizon to /horizon/dashboard due to Laravel 13's Horizon changes.
2 weeks ago
Your Name ce073ffc92 Merge remote-tracking branch 'origin/staging' into feature/honeypot-spam-protection
# Conflicts:
#	routes/web.php
2 weeks ago
Daniel Supernault 1d96c94054
Refactor Auth, remove expensive middleware 2 weeks ago
Your Name 8cebb24c04 Rate limit and audit-log 2FA checkpoint verification 2 weeks ago
Your Name 889d9efe99 Replace Auth::routes() with explicit auth route definitions
Expand the laravel/ui Auth::routes() helper into explicit route
definitions for login, logout, registration and password reset. This
removes the routing magic, makes every auth route visible in web.php,
and lets the honeypot ProtectAgainstSpam middleware live directly on the
single POST /register definition instead of a duplicate route.

laravel/ui is retained since the Auth controllers still rely on its
Illuminate\Foundation\Auth traits.
2 weeks ago
Your Name ce4343e3e2 Replace custom register token with spatie/laravel-honeypot
Swap the custom 'rt' register token anti-spam mechanism for
spatie/laravel-honeypot on the registration and parental-controls
invite flows.

- Add spatie/laravel-honeypot and publish config/honeypot.php
- Remove getRegisterToken() and the rt validation rule from RegisterController
- Replace the rt hidden field with the @honeypot directive in both forms
- Attach ProtectAgainstSpam middleware to POST /register and the
  parental-controls invite register route
- Update RegisterTest to disable honeypot for the valid registration case
2 weeks ago
Shift c0f3469ee2 Convert route options to fluent methods
Laravel 8 adopts the tuple syntax for controller actions. Since the old options array is incompatible with this syntax, Shift converted them to use modern, fluent methods.
3 weeks ago
Your Name b4e9a20af0 Merge remote-tracking branch 'origin/fix/phpstan-auth-request-scope-3' into tests/critical-path-smoke-tests
# Conflicts:
#	app/Http/Controllers/AccountController.php
4 weeks ago
Your Name 8a2649b3ff feat: add critical path test suite and fix auth/config issues
Test Infrastructure:
- Modernize phpunit.xml (bootstrap, source block, Laravel 12 env vars)
- Configure tests/Pest.php with pest()->extend(TestCase::class)->in('Feature')
- Add docker-compose.test.yml (Redis for test suite)
- Add composer test/test:quick scripts
- Rename CACHE_DRIVER to CACHE_STORE across config (backwards compatible)
- Update .env.testing for in-memory SQLite + Docker Redis

Test Coverage (190 tests):
- CriticalRoutes: public routes, auth routes, API endpoints, middleware, schedule
- Auth/LoginTest: login, logout, rate limiting, redirect behavior
- Auth/RegisterTest: registration flow, validation, disabled registration
- Auth/PasswordResetTest: reset request, token validation, password update
- Auth/TwoFactorTest: 2FA checkpoint, setup behind password confirmation
- Auth/PasswordConfirmationTest: sudo mode flow via Laravel password.confirm
- Api/ScopeTest: scope enforcement, public endpoints, admin access

Bugs Fixed:
- Fix unauthenticated API returning 500 instead of 401 (AuthenticationException
  not handled in custom exception renderer in bootstrap/app.php)
- Replace custom DangerZone middleware with Laravel password.confirm
- Add HasFactory trait to Profile model for test factories

Bugs Documented (known-bugs group):
- Registration crashes with str_ends_with TypeError (RegisterController:82)
- OAuth routes use legacy array syntax causing ReflectionFunction TypeError
4 weeks ago
Your Name 76d187edd8 fix: convert OAuth routes from legacy array syntax to modern fluent syntax
The old 'uses' => [Controller::class, 'method'] array format causes a
ReflectionFunction TypeError in Laravel 12 when Livewire's
SupportPageComponents tries to resolve route bindings. The framework's
RouteSignatureParameters::fromAction() expects a Closure or string,
not an array.

Convert all OAuth/Passport routes to the modern fluent syntax:
Route::post('/path', [Controller::class, 'method'])->name('name')
4 weeks ago
Your Name 28927f6f66 refactor: convert string-based routes to ::class array syntax
Replace all 'Controller@method' string references with
[Controller::class, 'method'] array syntax across all route files.
Remove the $namespace property and ->namespace() calls from
RouteServiceProvider.

This is required for Laravel 13 compatibility where string-based
controller routing and automatic namespace prefixing will be removed.

742 route references converted across 5 route files.
4 weeks ago
Your Name 53759e3ad6 Prevent deletion of personal access OAuth client
Fixes #6630 (partial — deletion causing broken PAT)

If a user deletes the OAuth client that serves as the personal access
client, all PAT creation breaks for the entire instance with a 500 error.

Changes:
- Add custom OAuthClientController@destroy that checks if the client
  has the personal_access grant type before allowing deletion
- Returns 403 with a clear error message if deletion is blocked
- Add confirmation dialog before client deletion in the frontend
- Add error handling to show server error messages to the user

This prevents accidental destruction of the PAT infrastructure.
4 weeks ago
Daniel Supernault 0f781cba34
Update Personal Access Tokens 3 months ago
Daniel Supernault e557d37b9e
Fix PAT 3 months ago
Daniel Supernault 13e490262d
Update web.php 3 months ago
Daniel Supernault 25d5142f12
Fix PAT + oauth routes 3 months ago
Daniel Supernault ef803ae9b6
Fix oauth/token 6 months ago
Gavin Mogan 441c8e0d4c Generic OIDC Support
* Everything should be configurable by env variables
* Basic request tests
1 year ago
Daniel Supernault adc4cffc38
Add custom filter components 1 year ago
Daniel Supernault dbd1e17b25
Add app register email verify resends 2 years ago
Daniel Supernault eac222d243
Move fallback media route 2 years ago
Daniel Supernault 4e6e6b4ab7
Update routes 2 years ago
Daniel Supernault 455711332b
Fix redirects 2 years ago
Daniel Supernault 3c249616ef
Add rate limits, fix typo and styling 2 years ago
Daniel Supernault 604746bd5e
Add AppRegister 2 years ago
Daniel Supernault 8afbdb03a8
Fix oauth oob (urn:ietf:wg:oauth:2.0:oob) support. Fixes #2522 2 years ago
Daniel Supernault afc6db143a
Update web routes 2 years ago
Daniel Supernault 4ca7c6c328
Add preliminary Authorize Interaction support 2 years ago
Daniel Supernault 7bef60d64a
Add Group web routes 2 years ago
Daniel Supernault 36c518fe2c
Update web routes 3 years ago
Daniel Supernault 4a6be62128
Add account migration configurable, but enabled by default 3 years ago
Daniel Supernault f8145a78cf
Add Profile Migrations 3 years ago
Daniel Supernault 2f48df8ca8
Update kb, add email confirmation issues page 3 years ago
Daniel Supernault 8dac2caf1d
Add Curated Onboarding 3 years ago
Daniel Supernault bc4d223714
Update routes 3 years ago
Daniel Supernault 67c650b195
Add forgot email feature 3 years ago
Daniel Supernault 42298a2e9c
Apply dangerZone middleware to parental controls routes 3 years ago
Daniel Supernault c53894fe16
Add Parental Controls feature 3 years ago
Daniel Supernault cef451e588
Update routes 3 years ago
Daniel Supernault 33ed7a8c91
Add AdminShadowFilter feature 3 years ago
Daniel Supernault 526807f01c
Update web routes 3 years ago
Daniel Supernault 9cfa89dab4
Update routes and add RemoteAuthController 3 years ago
Daniel Supernault 7e0335b246
Update routes 3 years ago