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

Doctrine Row Permission Bundle Laravel Package

tourze/doctrine-row-permission-bundle

A Symfony bundle for enforcing row-level permissions on Doctrine entities, helping control access to individual records based on the current user and integrate per-row security checks into queries and operations.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Row-level authorization / data-scoped access control: this package targets per-row permission checks at the Doctrine layer, which is the mechanism behind "users only see their own records," regional/territory scoping, and delegated admin views. It informs build-vs-buy decisions for the authorization core of any multi-tenant or regulated product.
  • Compliance and auditability roadmap: fine-grained row permissions are a prerequisite for SOC 2 / GDPR-style least-privilege requirements and for customer-facing audit stories ("who could see this record, and why"). Supports sequencing decisions on when access control moves from a bolt-on to a platform capability.
  • Multi-tenancy strategy: whether tenant isolation is enforced in application code, at the ORM/query layer, or in the database. This package sits in the ORM/query layer, which is a meaningful architectural fork in the road and should be decided before scaling the schema.
  • Build vs buy for the permission engine: an existing bundle shortens time-to-first-version, but a 0.0.x→0.1.0 package with no published changelog detail is not a de-risked dependency. This affects the "buy" side of the ledger and whether budget goes to integration or to in-house development.
  • Framework fit: this is a Doctrine bundle (Symfony-oriented), not a Laravel-native package. For a Laravel product, the decision is really "adopt Doctrine + this bundle" vs "use Laravel-native authorization (Gates/Policies, global scopes, spatie/laravel-permission)" — a much larger architectural commitment than a single dependency choice.

When to Consider This Package

Consider it when:

  • The product genuinely requires per-record (not per-role or per-endpoint) permission decisions, and those rules are numerous or dynamic enough that ad-hoc where clauses in every query are becoming a correctness and maintenance risk.
  • You are already on Doctrine (Symfony, or Laravel with Doctrine ORM) and want permission filtering to live beside the entity mapping rather than being re-implemented per repository.
  • You have a compliance or enterprise-sales requirement that access rules be declared and inspectable rather than scattered through controllers.
  • You can tolerate pre-1.0 API churn and can pin versions with a tested upgrade path.

Look elsewhere when:

  • The stack is stock Laravel/Eloquent. The integration cost outweighs the benefit versus Gates/Policies plus global scopes, which are idiomatic and better documented.
  • Access rules are coarse (roles, plans, org membership). A full row-permission engine is over-engineering; start simpler and revisit.
  • You need vendor support, SLAs, or a stable public API. Pre-1.0 with terse release notes does not meet that bar.
  • Permission logic is highly performance-sensitive on large tables — query-layer row filtering needs benchmarking against your data volumes and index strategy before committing.

How to Pitch It (Stakeholders)

For executives: We are evaluating an open-source component that enforces "who can see which record" at the data layer rather than in each screen. It addresses a recurring enterprise and compliance requirement — provable least-privilege access — and could shorten delivery of that capability. However, the package is early-stage (0.0.2 → 0.1.0, with no substantive changelog published), so it is a candidate for a time-boxed spike, not a production commitment. Recommendation: fund a short evaluation, keep the authorization boundary behind our own interface so the underlying library is replaceable, and do not let it block the roadmap.

For engineering: This is a Doctrine bundle, so it is only a natural fit if we are on Doctrine rather than Eloquent. The 0.1.0 release ships no described changes — we cannot assess breaking changes or new capability from the notes, so treat the version bump as unverified and pin it. If we proceed, wrap it behind an internal authorization abstraction, benchmark row-filtered queries on realistic table sizes, and agree an exit plan up front. If we are staying on Eloquent, the honest recommendation is that our existing Laravel authorization primitives cover the same ground with less risk.

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.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core
nodisrupt/laravel-agent
sierratecnologia/media-manager