AccessTree 2.0.0+ is a major enhanced release with a complete rewrite featuring modern Laravel patterns, zero-configuration admin interface, and enterprise-grade features.
- Complete CRUD interface for permissions, roles, and users
- Auto-generated forms and tables
- Built-in search and filtering
- Responsive design with Bootstrap 5
- Permission-aware - automatically respects user permissions
- No coding required - works out of the box
- Repository Pattern for clean data access
- Service Layer with dependency injection
- Response Objects for consistent API responses
- Interface-based design for testability
- Advanced caching with performance optimization
- Automatic gate registration for seamless authorization
- Root user bypass for superuser capabilities
- Custom gate support for application-specific permissions
- Blade directive compatibility
- Feature tests for all functionality
- Unit tests for services and repositories
- Integration tests for admin interface
- Gate integration tests
- 100% test coverage for critical paths
- RESTful API endpoints for all operations
- JSON API resources with proper serialization
- Pagination support
- Search and filtering
- Sanctum authentication ready
# Install with zero-configuration admin interface
composer require obrainwave/access-tree
php artisan accesstree:install --with-admin --with-gatesVisit /admin/accesstree to access the complete admin interface.
use Obrainwave\AccessTree\Traits\HasRole;
class User extends Authenticatable
{
use HasRole;
}That's it! You now have a complete RBAC system with admin interface.
- System statistics (permissions, roles, users count)
- Quick actions for common tasks
- System status monitoring
- Beautiful, responsive design
- Create, edit, delete permissions
- Search and filter functionality
- Status management (active/inactive)
- Bulk operations support
- Real-time validation
- Role creation with permission assignment
- Permission management per role
- User assignment tracking
- Hierarchical role support
- User role assignment
- Root user management
- Permission inheritance display
- Bulk role operations
// Use the service directly
$accessTreeService = app(AccessTreeServiceInterface::class);
// Create permission
$response = $accessTreeService->createPermission([
'name' => 'Manage Users',
'status' => 1
]);
if ($response->isSuccess()) {
// Permission created successfully
$permission = $response->data;
}// Use repositories for data access
$permissionRepo = app(PermissionRepository::class);
$permissions = $permissionRepo->search('user management');// Advanced caching with automatic invalidation
$cacheManager = app(CacheManager::class);
$userPermissions = $cacheManager->getUserPermissions($userId);
$cacheManager->clearUserCache($userId);// Gates are automatically registered
Gate::allows('manage-users');
Gate::allows('create-permissions');
Gate::allows('edit-roles');// Register custom gates
$gateService = app(GateService::class);
$gateService->registerCustomGate('publish-articles', 'publish_articles');@can('manage-users')
<button>Manage Users</button>
@endcan
@can('create-permissions')
<a href="/admin/accesstree/permissions/create">Create Permission</a>
@endcan# Get all permissions
GET /api/accesstree/permissions
# Create permission
POST /api/accesstree/permissions
{
"name": "Manage Users",
"status": 1
}
# Update permission
PUT /api/accesstree/permissions/1
{
"name": "Manage All Users",
"status": 1
}
# Delete permission
DELETE /api/accesstree/permissions/1// Automatic serialization with relationships
{
"id": 1,
"name": "Manage Users",
"slug": "manage_users",
"status": 1,
"roles_count": 3,
"created_at": "2024-01-01T00:00:00.000000Z",
"updated_at": "2024-01-01T00:00:00.000000Z"
}# Run all tests
php artisan test
# Run specific test suites
php artisan test --filter=AccessTreeServiceTest
php artisan test --filter=AdminInterfaceTest
php artisan test --filter=GateIntegrationTest# Generate test coverage report
php artisan test --coverage// config/accesstree.php
'admin_interface' => [
'enabled' => true,
'route_prefix' => 'admin/accesstree',
'middleware' => ['web', 'auth'],
'layout' => 'accesstree::admin.layouts.app',
],'cache_refresh_time' => 5, // minutes
'cache_driver' => 'redis', // or 'file', 'database''gates' => [
'enabled' => true,
'auto_register' => true,
],- User-specific caching for permissions and roles
- Automatic cache invalidation on changes
- Configurable cache duration
- Multiple cache driver support
- Efficient queries with proper joins
- Pagination support for large datasets
- Index optimization for fast lookups
- Relationship eager loading
- Lazy loading for relationships
- Memory-efficient collections
- Garbage collection optimization
- Comprehensive validation for all inputs
- SQL injection protection
- XSS prevention
- CSRF protection
- Root user bypass for superuser access
- Permission inheritance validation
- Role hierarchy enforcement
- Audit logging capabilities
- OpenAPI/Swagger compatible
- Request/response examples
- Error code documentation
- Authentication requirements
- Installation guide
- Configuration reference
- Customization examples
- Troubleshooting guide
We welcome contributions! Please see CONTRIBUTING.md for:
- Coding standards
- Testing requirements
- Pull request process
- Issue reporting
- Multi-tenancy support for SaaS applications
- Permission groups for better organization
- Audit logging for compliance
- Real-time updates with WebSockets
- Mobile app support with API
- Advanced reporting and analytics
- Filament integration examples
- Livewire components for dynamic UI
- Inertia.js integration
- Vue.js admin components
- GitHub Issues for bug reports
- Discord Community for discussions
- Email Support for enterprise users
- Documentation for self-help
The MIT License (MIT). Please see LICENSE.md for more information.
AccessTree Enhanced Edition - The most powerful, flexible, and user-friendly RBAC system for Laravel applications. Built with modern Laravel patterns, featuring zero-configuration admin interface, and enterprise-grade performance.