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

Permission Bundle Laravel Package

epubli4/permission-bundle

Symfony bundle that eases permission handling for e4 microservices using API Platform. Install with Composer, configure your microservice name and permission export/aggregation routes, then enable the Doctrine self-permission filter. Works with l0wskilled/api-platform-test for unit tests.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

  • Architecture fit: The package is a Symfony bundle for API Platform microservices, not a Laravel package. It assumes Symfony DI, Doctrine ORM, API Platform annotations, JWT-based access tokens, and a central user service. In a Laravel stack, architecture fit is poor; only the conceptual patterns—centralized permission export/aggregation and row-level self-permission scoping—are transferable. In a Symfony/API Platform stack, fit is reasonable for e4-style microservices but tied to 2021-era conventions.
  • Integration feasibility: Feasible in Symfony 4/5 + API Platform 2.x via Composer, YAML configuration, Doctrine filter registration, entity interface/trait implementation, and API Platform security expressions. Laravel integration would require reimplementation rather than adoption.
  • Technical risk: High. The package has very low adoption (3 stars, 0 dependents), no release since 2021-07-02, and annotation-based configuration that is deprecated in modern PHP/Symfony. Security-sensitive concerns include JWT handling, permission aggregation, global Doctrine filter behavior, and a hard dependency on a central user service contract. Test traits reduce test effort but can mask authorization failures.
  • Key questions: Is the target stack truly Laravel or Symfony/API Platform? Which PHP, Symfony, API Platform, and Doctrine versions are required? Does the central user service already exist and match the configured routes and permission keys? Is the JWT format compatible? Who will own forking, patching, and security review? Are there compliance requirements for authorization decisions? Can the central permission lookup be asynchronous or cached to avoid a synchronous runtime dependency?

Integration Approach

  • Stack fit: Poor for Laravel; viable only for legacy Symfony/API Platform microservices. If Laravel is mandatory, do not integrate the bundle—borrow the permission aggregation and row-level scoping patterns and implement them with Laravel-native authorization (Gate/Policy) or a package such as spatie/laravel-permission plus a central permission service.
  • Migration path: For Symfony, pilot in one non-critical service, fork the repository, pin and upgrade dependencies, convert annotations to attributes where needed, add security review, implement SelfPermissionInterface/SelfPermissionTrait, configure export and aggregated-permission routes, and run functional tests with JWTMockTrait. For Laravel, run a separate design spike for an equivalent middleware/policy implementation rather than attempting to port the bundle.
  • Compatibility: Expect PHP 7.4/8.0-era code, Symfony 4/5, API Platform 2.x, and Doctrine ORM 2.x. It is not compatible with Laravel and likely requires significant rework for Symfony 6/7 or API Platform 3. Verify PHP 8.1+ deprecations and annotation support before committing.
  • Sequencing: 1) Confirm stack and central user service availability. 2) Run dependency and security audit; decide fork vs. build. 3) Build a proof of concept in one service. 4) Implement permission export, aggregation lookup, and Doctrine row-level filter. 5) Add contract tests and failure-mode tests. 6) Roll out service by service with rollback plans. 7) If Laravel, execute a native authorization design track in parallel.

Operational Impact

  • Maintenance: Low external maintenance. Last release was 2021, with no dependents and minimal community activity. The TPM should budget for internal ownership: forking, patching, dependency upgrades, and security monitoring.
  • Support: Minimal community support; rely on source code and internal expertise. Documentation covers installation and basic usage but not upgrade paths, failure modes, or production hardening.
  • Scaling: The central user service becomes a runtime dependency for permission checks and aggregation. Add caching, timeouts, circuit breakers, and fallbacks. The Doctrine self-permission filter adds query complexity; monitor database performance and filter correctness.
  • Failure modes: Central service outage can block authorization; stale or incorrect aggregated permissions can grant or deny access incorrectly; misconfigured Doctrine filters can cause data leakage or over-restriction; JWT validation failures can break authentication; the test-environment flag could be enabled in production; annotation discovery issues can silently skip permissions. Use deny-by-default behavior, health checks, and alerting.
  • Ramp-up: Moderate for Symfony/API Platform teams familiar with Doctrine and security voters; steep for Laravel teams because the bundle is not reusable. Allocate time for security review, contract testing, permission-key conventions, row-level filter semantics, and test mocking.
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.
roundly-consulting/kubernetes-api-for-laravel
roundly-consulting/plausible-for-laravel
gvp/gvp-laravel-template
metasyncsite/laravel-metasync-client
roundly-consulting/onboarding-for-laravel
andydefer/laravel-notification
adachsoft/cli-process-tester
jhaskell13/laraflow
sebastienheyd/boilerplate-media-manager
ccast/tagixo-primix
pretendtrue/laravel-builder
sawmainek/laravel-scout-tntsearch-driver
tomshaw/laravel-calendar-table
dibakar/laravel-ownership
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo