Weave Code
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
Permissions

Permissions Laravel Package

beartropy/permissions

View on GitHub
Deep Wiki
Context7

Visual UI for spatie/laravel-permission using the Beartropy ecosystem

Frequently asked questions about Permissions
How does beartropy/permissions integrate with existing spatie/laravel-permission setups?
The package is a visual layer on top of spatie/laravel-permission, so it requires Spatie’s package to be installed first. It leverages Spatie’s core logic for roles, permissions, and user assignments, meaning your existing migrations, models, and policies remain intact. No need to rewrite permission logic—just add the UI.
Can I use this package without Livewire in my Laravel app?
No, beartropy/permissions relies on Livewire 3 or 4 for its real-time UI. If your project avoids Livewire, you’ll need to either adopt it or explore alternatives like custom Blade views or third-party admin panels. The package doesn’t support non-Livewire setups.
What Laravel versions and PHP requirements does this package support?
The package is optimized for Laravel 10 and 11 with PHP 8.2+. It requires Livewire 3 or 4 and spatie/laravel-permission v6 or v7. Always check the latest compatibility notes in the [documentation](https://beartropy.com/permissions) before installing.
How customizable is the UI? Can I match it to my Tailwind/Bootstrap design system?
The UI is themeable and supports dark/light modes, but deep customization (e.g., replacing tables with custom components) may require overriding Blade views in `resources/views/vendor/beartropy-permissions`. For Tailwind/Bootstrap integration, focus on CSS overrides or extend the provided classes.
Does this package support hierarchical roles or nested permissions?
No, beartropy/permissions relies on spatie/laravel-permission’s flat role/permission structure. For hierarchical roles or dynamic permissions, you’d need to extend Spatie’s logic (e.g., custom traits or middleware) or fork the package. The UI won’t enforce these rules natively.
How do I secure the permission management UI itself? Can I restrict access to admins only?
The package includes middleware and guard configurations to protect routes. Use the `beartropy-permissions:auth` middleware or define custom gates (e.g., `can:manage-permissions`) in your `AuthServiceProvider`. Example: `Route::middleware(['auth', 'can:manage-permissions'])->group(...);`.
Are there performance concerns with Livewire tables for large datasets (e.g., 10K+ users/roles)?
Livewire tables are optimized for pagination and lazy loading, but rendering 10K+ records may still impact performance. Use Spatie’s caching (e.g., `Permission::cacheResolved()`) and Livewire’s `with()` method to preload data. For extreme cases, consider server-side processing or splitting data into smaller tables.
Can I test the permission UI in isolation without affecting production data?
Yes, use Laravel’s database transactions or staging environments to test the UI. The package doesn’t modify Spatie’s core logic, so you can safely experiment with roles/permissions in a sandbox. Example: Wrap migrations in `DB::transaction()` during testing.
What alternatives exist if I need more advanced permission features (e.g., ABAC, policy-as-code)?
For advanced access control, consider packages like `spatie/laravel-permission` with custom policies, `nWidart/laravel-modules` for modular permissions, or `orchid/software` for a full admin panel. If you need Attribute-Based Access Control (ABAC), explore `gloudemans/shoppingcart` or build a custom solution on top of Spatie.
How do I handle translations for non-English languages? Is i18n support built-in?
The package includes built-in i18n for Spanish and English, with easy extensibility for other languages. Publish the language files via `php artisan vendor:publish --tag=permissions-lang` and add your translations to `resources/lang/vendor/permissions/`. Use Laravel’s `trans()` helper in Blade views for dynamic text.
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.
codraw/framework-extra-bundle
codraw/messenger
codraw/security
codraw/mailer
codraw/contracts
codraw/profiling
codraw/dependency-injection
codraw/tester
codraw/core
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony