Commit Graph

12792 Commits (90af7d8a2dc33b1b58719b8a0c1a5e294b95e9e8)
 

Author SHA1 Message Date
dansup 90af7d8a2d
Merge pull request #6879 from pixelfed/fix/csrf-middleware-rename
Laravel 13 prep: rename VerifyCsrfToken to PreventRequestForgery
1 month ago
dansup e0876c8a97
Merge pull request #6878 from pixelfed/fix/mysql-strict-mode
fix: enable MySQL strict mode and remove defaultStringLength(191)
1 month ago
dansup 93553670e5
Merge pull request #6877 from pixelfed/fix/replace-request-get
Laravel 13 prep: replace Symfony deprecated ->get() with ->input()
1 month ago
dansup 665221176b
Merge pull request #6874 from pixelfed/fix/api-throttle-middleware
feat: add global throttle:api middleware to the api route
1 month ago
Shlee 542434785c
Set strict mode to true in database configuration 1 month ago
Shlee 35cb9a9dcb
Change DB_STRICT environment variable to true 1 month ago
Shlee 323cfc9cf7
Update database.php 1 month ago
Shlee 2f466b02d7
Update database.php 1 month ago
Your Name 9958b095dd refactor: rename VerifyCsrfToken to PreventRequestForgery
Prepares for Laravel 13 where VerifyCsrfToken is deprecated in favor
of PreventRequestForgery. The old class remains as an alias in v13 but
will be removed in a future version.
1 month ago
Your Name 4320231c1f fix: replace deprecated $request->get() with $request->input()
Symfony 8.0 removes Request::get(). Laravel 13 will support Symfony 8,
so these 11 usages would break on upgrade. Using $request->input()
which checks both query string and request body (same behavior as the
old get() method).
1 month ago
Your Name 1b64c59beb fix: enable MySQL strict mode and remove defaultStringLength(191)
- Enable strict mode for MySQL connection to prevent silent data
  truncation, zero-date insertion, and division-by-zero errors.
- Remove Schema::defaultStringLength(191) which was a MySQL 5.7
  workaround no longer needed on MySQL 8.0+ / MariaDB 10.3+.
1 month ago
Shlee 08cdac1ef6
Merge pull request #6876 from pixelfed/fix/remove-unused-deps
chore: remove unused direct dependencies
1 month ago
Your Name 1696dfacaa chore: remove unused direct dependencies
- Remove endroid/qr-code: never imported in app code; only
  bacon/bacon-qr-code is used directly (for 2FA QR generation).
- Remove nesbot/carbon: already pulled in transitively by
  laravel/framework, laravel/horizon, and laravel/pulse.
1 month ago
Shlee 1f3e472a7e
Merge pull request #6875 from pixelfed/fix/unpin-symfony-http-foundation
fix: unpin symfony/http-foundation to allow patch updates
1 month ago
Your Name 0c849ca4e7 fix: unpin symfony/http-foundation to allow patch updates
Changes constraint from exact '7.4.13' to '^7.4.13'. The pin was
introduced for CVE-2026-48736 but is overly restrictive — any 7.4.x
release >= 7.4.13 includes the fix. This allows future security
patches to install via composer update.

Note: Symfony 8.x is blocked by laravel/framework ^12 which requires
symfony/http-foundation ^7.2.0. Symfony 8 support arrives with Laravel 13.
1 month ago
Shlee 0837968fad
Update AppServiceProvider.php 1 month ago
Your Name ed90e619fb feat: add throttle:api middleware to the api route group
Adds a global rate limiter (240 req/min per user or IP) to all API
routes. Previously rate limiting was only applied ad-hoc on individual
routes, leaving some endpoints unprotected.
1 month ago
Shlee f81d7ba666
Merge pull request #6873 from pixelfed/fix/deprecated-starts-with
fix: replace deprecated starts_with() with str_starts_with()
1 month ago
Your Name 26b8a0a6b0 fix: replace deprecated starts_with() with str_starts_with()
The starts_with() helper was removed in Laravel 6. Use PHP 8's native
str_starts_with() instead.
1 month ago
Shlee cf714c6fb7
Merge pull request #6872 from pixelfed/larastan0
refactor: replace $fillable with $guarded = [] across all models
1 month ago
Your Name 570a30d037 refactor: replace $fillable with $guarded = [] across all models
Aligns all models with the project convention (see .ai/rules/models.md).
Model::shouldBeStrict() in non-production will catch any issues early.
1 month ago
Shlee 2fbb9fa428
Merge pull request #6871 from pixelfed/larastan0
polish
1 month ago
Your Name c891f34df6 polish 1 month ago
Shlee b5c9f2d062
Merge pull request #6870 from pixelfed/shleeable-patch-1
Update DOCKER_COMPOSE_SETUP.md
1 month ago
Shlee 4086f07783
Fix duplicate command in Docker Compose setup 1 month ago
Shlee e2c6162b35
Update DOCKER_COMPOSE_SETUP.md 1 month ago
Shlee 1b3c8150b0
Merge pull request #6869 from pixelfed/larastan0
Larastan0
1 month ago
Your Name f54e6280bc comment dead code 1 month ago
Your Name ea2d054a40 Revert "fix: remove dead publicApi/homeApi methods from TimelineController"
This reverts commit 8cf5321566.
1 month ago
Your Name 8cf5321566 fix: remove dead publicApi/homeApi methods from TimelineController
- publicApi referenced non-existent StatusTimelineTransformer class
- Neither method is routed anywhere
- Removes unused imports (Fractal, Cache, Status, Profile, UserFilter)
1 month ago
Shlee d4fc25907c
Merge pull request #6868 from pixelfed/larastan0
fix: remove dead RemoteFollowPipeline (old code before AP)
1 month ago
Your Name 7042ea5367 fix: remove dead RemoteFollowPipeline (references uninstalled HttpSignatures package)
- Delete app/Jobs/RemoteFollowPipeline/RemoteFollowPipeline.php
- Delete app/Jobs/RemoteFollowPipeline/RemoteFollowImportRecent.php
- Neither job is dispatched anywhere in the codebase
- Remote follow is handled by ActivityPub Inbox and FollowPipeline
1 month ago
Shlee eb8806f37d
Merge pull request #6867 from pixelfed/fix/passport-v13-cleanup
fix: remove deprecated Passport::personalAccessClientId()
1 month ago
Your Name 5a364be58b fix: remove deprecated Passport::personalAccessClientId() and enableImplicitGrant()
- Remove Passport::personalAccessClientId() (removed in Passport v13, auto-discovers now)
- Remove Passport::enableImplicitGrant() (legacy grant, no clients use it)
- Flatten config instance.oauth.pat to pat_enabled (remove dead pat.id key)
- Add OAUTH_PAT_ENABLED=false to .env.example and .env.docker.example
- Show swal alert when PATs disabled instead of hidden API error
- Improve store() error handling to surface 403 messages in the UI
- Remove OAUTH_PAT_ID row from admin diagnostics blade
1 month ago
Shlee 190e7da6e1
Merge pull request #6866 from pixelfed/tests/critical-path-smoke-tests
Tests/critical path smoke tests
1 month ago
Your Name 6a34458c3a Merge branch 'staging' into tests/critical-path-smoke-tests
# Conflicts:
#	app/Http/Controllers/Settings/ExportSettings.php
#	app/Http/Controllers/Settings/HomeSettings.php
#	app/Http/Controllers/Settings/PrivacySettings.php
#	app/Http/Controllers/Settings/SecuritySettings.php
#	app/Http/Controllers/SettingsController.php
1 month ago
Shlee 6dd0604133
Merge pull request #6865 from pixelfed/shleeable-patch-1
Update AccountController.php
1 month ago
Shlee 3c6280111e
Update AccountController.php 1 month ago
Shlee 8778273c7c
Merge pull request #6854 from pixelfed/fix/phpstan-auth-request-scope-3
Larascan: Replace Auth::user() with $request->user()
1 month ago
Your Name ffcef3eb2d fix: replace Auth facade with $request->user() in request-scoped classes
Replace Auth::user() with $request->user() and Auth::check() with
$request->user() !== null (or ! $request->user()) across all
controllers and middleware that have access to the request object.

This resolves 99 larastan.noAuthFacadeInRequestScope errors and
improves Octane compatibility.

For protected helper methods without $request in scope, uses the
request() helper instead.

Methods that previously lacked a Request parameter but used Auth
facade now accept Request $request via Laravel's auto-injection.
1 month ago
Shlee 827a56be00
Merge pull request #6861 from pixelfed/tests/critical-path-smoke-tests-clean
Tests/critical path smoke tests clean
1 month ago
Your Name 47d98bfb55 revert: restore original GitHub Actions workflow names 1 month ago
Your Name a486f509a5 test: add auth scope migration tests and update CI action versions
AuthScope/RequestUserTest: 22 tests verifying all controllers and
middleware that were migrated from Auth::user() to $request->user().
CI: update to checkout@v7, cache@v6
1 month ago
Your Name 918e49136a test: add auth scope migration verification tests (390 total, all green)
AuthScope/RequestUserTest: exercises every controller and middleware
that was refactored from Auth::user()/Auth::check() to $request->user().
Covers web routes (follow requests, compose, collections, discover,
profile, status, timeline, newsroom), API routes (verify_credentials,
timelines, notifications, blocks, mutes, favourites, bookmarks), and
middleware (admin, password.confirm, account interstitial).

All 390 tests pass with the auth-scope-3 and passport middleware fixes
applied together.
1 month ago
Shlee 71c755a807
Merge pull request #6860 from pixelfed/tests/critical-path-smoke-tests
Tests/critical path smoke tests
1 month 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
1 month ago
Your Name 9f81a5b425 test: un-skip Passport scope tests now that middleware is fixed
All v1 admin route security tests now pass with proper assertions
after the CheckForAnyScope → CheckTokenForAnyScope fix.
1 month ago
Shlee bed4efa77e
Merge pull request #6859 from pixelfed/fix/passport-scope-middleware
fix: replace removed Passport scope middleware with current classes
1 month ago
Your Name 0eae871e40 fix: replace removed Passport scope middleware with current classes
Laravel Passport 13 renamed:
- CheckScopes → CheckToken (verifies ALL listed scopes)
- CheckForAnyScope → CheckTokenForAnyScope (verifies ANY listed scope)

The old class names no longer exist, causing BindingResolutionException
on all /api/v1/admin/* routes that use the 'scope' or 'scopes' middleware
aliases.
1 month ago
Your Name 7a96cd2e91 fix: replace removed Passport scope middleware with current classes
Laravel Passport 13 renamed:
- CheckScopes → CheckToken (verifies ALL listed scopes)
- CheckForAnyScope → CheckTokenForAnyScope (verifies ANY listed scope)

The old class names no longer exist, causing BindingResolutionException
on all /api/v1/admin/* routes that use the 'scope' or 'scopes' middleware
aliases.
1 month ago