- Migration: add bio_pages_limit to plans, make limit cols nullable (agency=unlimited) - PlanSeeder: 4 plans (free/pro/business/agency) with tier/features/bio_pages_limit - workspaces:assign-default-plan command: assigns free plan to unassigned workspaces - BioPage::publicUrl(): free=apex-path, pro+=subdomain, custom=custom-domain - Security: str_ends_with check uses '.'.$apex to prevent evilnimu.li bypass - BioPage::shortPublicUrl(): URL without scheme for display - PlanLimitsService: use bio_pages_limit column (was features['bio_pages']), null=unlimited - BioPageController: fix $bio → $page variable (view expects $page) - Bio index/edit views: use publicUrl()/shortPublicUrl(), not hardcoded ULID URLs - Bio edit view: publicUrlBase/displayUrlBase from component (plan-aware prefix) - Create-bio modal: plan-aware URL prefix display - PlanFactory/WorkspaceFactory: free()/pro() states for tests - Tests: PublicUrlTest (5 cases), Free404FixTest (3 cases) Known pre-existing failure (not caused by this change): - Tests\Feature\Auth\EmailVerificationTest::email can be verified Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Actions | ||
| Components | ||
| Forms | ||
| Layouts | ||
| Modals | ||
| Pages | ||