Commit Graph

3202 Commits (b4e9a20af09a39574d7ac704add132fa6faad798)

Author SHA1 Message Date
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
Shlee 559db5d73e
Merge pull request #6825 from pixelfed/fix/blade-test-str-random
fix: replace deprecated str_ helpers in Blade templates and tests
4 weeks ago
Your Name 30db57448f fix: replace str_random/str_limit/str_slug in Blade templates and tests
These deprecated helpers will throw 'undefined function' errors at
runtime since laravel/helpers was removed. Replace with Str::random(),
Str::limit(), and Str::slug() respectively.
4 weeks ago
Daniel Supernault b761107c71
Update ContextMenu, restore Edit button 4 weeks ago
Shlee 80271c9002
Update Clients.vue 4 weeks ago
Shlee 06e3351e92
Merge pull request #6778 from pixelfed/fix/prevent-pat-client-deletion-6630
Fix: Improve the web UX for deleting the OAuth Client and PAT
4 weeks ago
Shlee f2a019744c
Merge pull request #6776 from pixelfed/fix/oauth-client-secret-display-6630
Fix: OAuth client secret not displayed after creation
4 weeks ago
Shlee b478092668
Merge pull request #6775 from pixelfed/fix/upload-error-messages-6657
Fix: Show detailed upload error messages instead of generic error
4 weeks ago
Your Name 78b2bc3235 Apply pint formatting to resources/ 4 weeks ago
Your Name e0fc6c7773 Merge remote-tracking branch 'origin/staging' into pint/resources
# Conflicts:
#	resources/lang/es/auth.php
#	resources/lang/es/web.php
#	resources/lang/fr/site.php
#	resources/lang/oc/web.php
#	resources/lang/pt/web.php
#	resources/lang/zh/web.php
4 weeks ago
Shlee 24e22b7cad
Merge pull request #6567 from arnaud-jacquemin/feature/french-translation
French translation of the site pages
4 weeks ago
Shlee adee14a3a0
Merge pull request #6575 from pixelfed/l10n_staging
New Crowdin updates
4 weeks ago
Shlee 8b64e857a7
Merge pull request #6624 from raymundovr/feat/es-translation
Spanish translations
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
Your Name 655d71ba5c Fix OAuth client secret not displayed after creation
Fixes #6630 (partial — client secret issue)

In Passport v13, client secrets are hashed at the model level and only
available as plain_secret on the response from the creation endpoint.
The previous code immediately re-fetched the client list after creation,
losing the plain secret since it's not stored or returned on GET.

Changes:
- Capture plain_secret from the POST response
- Show a dedicated modal with the client ID and secret after creation
- Warn users to copy the secret immediately (it won't be shown again)
- Add a Copy button for convenience
- Show 'Hidden (only shown at creation)' in the table for existing clients
4 weeks ago
Your Name 5eda130817 Show detailed upload error messages instead of generic error
Fixes #6657

When media uploads fail with a 422 validation error (e.g. file too large),
the error dialog now shows the actual validation message including the
filename, instead of the generic 'An unexpected error occurred.'

Example: 'DSCF0273.JPG: The file may not be greater than 15000 kilobytes'

Also improved the default error case to surface server-provided messages
when available. Applied to both ComposeModal and ComposeClassic components.
4 weeks ago
Your Name e8d6a48cdd Apply Pint formatting to resources/ 4 weeks ago
dansup 7354f63563
Merge branch 'staging' into remove-exp-rec 1 month ago
dansup 4c0c6bdec0
Merge pull request #6577 from shleeable/remove-exp-lc
Remove deprecated EXP_LC (hidden like counts) config
1 month ago
dansup ec38262338
Merge pull request #6576 from shleeable/covidremove
Clean up Covid/WHO
1 month ago
Daniel Supernault 5e79dbd332
Add alt tag to avatars. Fixes #6569 1 month ago
dansup 24697b77fc
Merge pull request #6579 from shleeable/remove-exp-loops
Remove deprecated legacy loops feature entirely
1 month ago
Daniel Supernault d1b11e2a8f
Fix post likes modal 1 month ago
Daniel Supernault c4bc3226b8
Update compiled assets 1 month ago
dansup dcb3ffa04b
Merge pull request #6684 from pixelfed/shleeable-patch-18
missing parentheses
1 month ago
dansup 5cccd4937a
Merge pull request #6679 from pixelfed/shleeable-patch-14
OAuth: Cancel/Deny on authorization screen fails with 403 due to missing auth_token
1 month ago
Shlee a600981820
Update show.blade.php 1 month ago
Shlee 5913b031c8
Update authorize.blade.php 1 month ago
Shlee 28c8772186
Update index.blade.php 1 month ago
Daniel Supernault 0f781cba34
Update Personal Access Tokens 3 months ago
Daniel Supernault 8ca7770918
Update PersonalAccessTokens component 3 months ago
Daniel Supernault d8412ec0f5
Update Admin Invites, fixes #4264 3 months ago
Ray 354afc79cb feat: Spanish translation 4 months ago
Ray 7afc700f64 feat: Spanish translation 4 months ago
dansup b7ff17d3dc New translations web.php (Portuguese, Brazilian)
[ci skip]
[ci skip]
4 months ago
Daniel Supernault 4c803c2857
Reduce profile bio/website hidden logic to 10 followers from 100 and add a new check to bypass this if they have more than 10 posts 4 months ago
Daniel Supernault ef3fdeeca3
Update profile view 4 months ago
Daniel Supernault 3a71cda51f
Prevent og:image on sensitive posts 5 months ago
Your Name 715c671712 Remove deprecated Loops feature entirely
- Remove 'loops' from config/exp.php and instance.discover.loops from config/instance.php
- Remove loops API routes (loopsApi, loopWatch) from web-api.php
- Delete LoopComponent.vue, loops.js entry point, and loops blade view
- Remove EXP_LOOPS diagnostic row from admin diagnostics page

The Loops feature was deprecated and hardcoded to disabled.
5 months ago
Your Name 10a5eb7228 Remove exp.rec recommendations dead code
- Remove userRecommendations controller method and /api/local/exp/rec route
- Remove suggestions UI panel, data properties, and methods from Timeline.vue
- Remove commented-out suggestions card from feed template

The recommendations feature was deprecated and hardcoded to false/empty.
5 months ago
Your Name 1f01a15e64 Remove deprecated EXP_LC (hidden like counts) config
Remove the EXP_LC env var from config/exp.php and its diagnostic
row from the admin diagnostics page. This feature was already
marked as deprecated and unused.
5 months ago
Your Name 41089fcccd Remove COVID label feature flag and related code
Remove ENABLE_COVID_LABEL, COVID_LABEL_URL, and COVID_LABEL_ORG env
vars and all associated backend/frontend code:

- config/instance.php: remove label.covid config block
- StatusLabelService: remove keyword matching, return static false
- Site/Config.php: remove label.covid from API response
- StatusCard.vue: remove COVID banner and labelRedirect method
- GroupStatus.vue: remove COVID banner and labelRedirect method
- diagnostics blade: remove COVID diagnostic rows
5 months ago
dansup 6aee03c9a5 New translations web.php (Occitan)
[ci skip]
5 months ago
dansup 52a0e41201 New translations web.php (Occitan)
[ci skip]
5 months ago
dansup f88d0db456 New translations web.php (Chinese Simplified)
[ci skip]
5 months ago
Daniel Supernault 0a41c9e387
Fix typo 5 months ago
Daniel Supernault 14b325641f
Update Password Change with new Revoke Sessions option
As requested in https://lgbtqia.space/@serigala_tropis/116412473982617371
5 months ago
Arnaud ca273cff01 French translation of the site pages 5 months ago
dansup a1d6fefd2b
Merge pull request #6509 from pixelfed/l10n_staging
New Crowdin updates
6 months ago
dansup e7aca161f7
Merge pull request #6508 from rm-yakovenko/issues/6386
[Web Bug]: Ui/UX: view profil is going the to the profil which reposted, not to the original one.
6 months ago