Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Ts Portal Laravel Package

miraheze/ts-portal

A Laravel/PHP package from Miraheze for the TS Portal. It provides the portal’s PHP components and integration points, making it easy to add TS Portal functionality to a Laravel application via Composer.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Security & compliance roadmap: The release closes two security advisories — an underage-check bypass (GHSA-4835-jf76-3g69) and a non-constant-time API writekey comparison (GHSA-86xc-5q56-p5pg). For a staff/volunteer portal, the underage check maps directly to minor-safety and record-keeping obligations (COPPA/GDPR-K-style review, plus platform Terms of Use enforcement). This is a decision point on whether age gating is a first-class product requirement with SLAs, or an ad-hoc check.
  • Upgrade cadence policy: guzzlehttp/guzzle moves 7.10.0 → 8.2.0, a major version jump. That is the single highest-risk item here and should be used to set a standing decision: how much major-version drift do we tolerate in our Laravel apps before scheduling a deliberate upgrade window? Laravel framework, Socialite, Tinker, Mockery and PHPUnit moved within minor/patch ranges — routine currency.
  • Build vs. buy (consume vs. fork): This is Miraheze's in-house TSPortal application, not a general-purpose library. Public, coordinated security advisories are real evidence of a functioning disclosure process — a point in favor of consuming/forking rather than building a comparable portal in-house. Weigh that against the cost of tracking an upstream that is coupled to a specific wiki-farm platform.
  • Accessibility as shipped product quality: The contrast change on the home page is a small but concrete WCAG-adjacent improvement. Useful as a data point that accessibility fixes are shipping incrementally — or as a signal that they are being handled one-off rather than as an audited program.
  • Feature/use-case fit: API writekey endpoints, social login (Socialite), artisan tooling (Tinker), and an age-verified user base. Each maps to a concrete product story — OAuth onboarding, API trust boundaries, admin/ops tooling, and minor protection — that should be represented in our roadmap or explicitly declared out of scope.
  • Maintenance tax: Dependency upgrades dominate the changelog. That is a useful estimate input for ongoing cost of ownership (roughly one routine hygiene release per cycle), and for deciding whether to consume upstream releases or pin and vendor.

When to Consider This Package

Consider adoption when:

  • You operate a MediaWiki/Miraheze-style wiki farm and need a staff, volunteer, or community-ops portal with role-based access.
  • You need social/OAuth login (Laravel Socialite is already wired in) as opposed to bespoke SSO.
  • You require age gating or minor-protection logic tied to user records — the upstream now has an actively patched check you can inherit rather than invent.
  • Your team is already standardized on Laravel and comfortable absorbing major dependency bumps on a vendor-driven cadence.
  • You value coordinated, published security advisories over a quieter upstream; the two CVE fixes here are a credible trust signal.
  • You are willing to treat it as an application to fork or track, with your own deploy, monitoring, and review layer.

Look elsewhere when:

  • You are not on the Miraheze/MediaWiki platform — the domain coupling (wiki farm roles, platform-specific identity model) is likely more cost than value.
  • You need a vendor-supported LTS with a fixed support window; upgrades here are driven by upstream convenience, not a published lifecycle.
  • The Guzzle 7 → 8 major jump is unworkable against your existing HTTP client integrations, custom middleware, or strict dependency constraints.
  • You need a general-purpose portal/CMS or an off-the-shelf identity provider rather than a platform-specific staff tool.
  • You cannot accept an internal tool that ships without (in this release) a migration guide, changelog detail on the Guzzle major, or documented breaking-change analysis.

Adoption caveat: this assessment is derived solely from the v37 release notes. There is no prior assessment and no code review, runtime validation, or dependency audit behind it. Treat the security fixes as confirmed by upstream advisories, and everything else as unverified until engineering reviews the Guzzle 8 upgrade path.

How to Pitch It (Stakeholders)

For executives: A new upstream release closes two security vulnerabilities — one that could let an underage user bypass age verification, and one that weakened validation of API write keys. Both are patched, no product features were removed, and the only material engineering cost is a major bump of the underlying HTTP library (Guzzle 7 → 8), which needs a scheduled upgrade window rather than a same-day push. Recommendation is to upgrade promptly for the security fixes and to treat the Guzzle major as tracked technical work. No user-visible experience change beyond a small readability/contrast improvement on the home page.

For engineering: Two security patches landed — constant-time hash_equals for writekey validation, and a corrected underage check — both must be picked up. Verify the age-gate fix against our own flows, since a previously passing check may now reject inputs it used to accept. The real risk is Guzzle 8: audit every outbound HTTP call, custom handler stack, and middleware for breaking changes before merging; the Laravel, Socialite, Tinker, Mockery and PHPUnit bumps are routine. WithoutTimestamps adoption and the contrast change are low-risk. Budget a spike for Guzzle, then a routine regression pass.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core