cleaniquecoders / laravel-organization
Provide organization related app
Fund package maintenance!
Cleanique Coders
Installs: 9
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/cleaniquecoders/laravel-organization
Requires
- php: ^8.4
- cleaniquecoders/traitify: ^1.2
- illuminate/contracts: ^11.0||^12.0
- livewire/livewire: ^3.0
- lorisleiva/laravel-actions: ^2.9
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.8
- orchestra/testbench: *
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
README
A comprehensive Laravel package for implementing organization-based tenancy in your application. This package provides a complete solution for managing organizations, user memberships, roles, and automatic data scoping with SOLID principles compliance.
Key Features
- 🏢 Organization Management - Complete CRUD operations with UUID and slug support
- 👥 User Membership - Flexible role-based membership system with administrators and members
- 🔒 Automatic Data Scoping - Seamless multi-tenancy through Eloquent global scopes
- ⚙️ Comprehensive Settings - Extensive JSON-based configuration system with validation
- 🧩 SOLID Principles - Contract-based architecture for flexibility and testability
- 🛠️ Developer Friendly - Built-in factories, commands, and trait-based integration
Screenshots
Organization Management
Organization Switcher
Create New Organization
Quick Start
Installation
composer require cleaniquecoders/laravel-organization
php artisan vendor:publish --tag="org-migrations"
php artisan migrate
Basic Usage
use CleaniqueCoders\LaravelOrganization\Actions\CreateNewOrganization; use CleaniqueCoders\LaravelOrganization\Enums\OrganizationRole; // Create an organization $organization = (new CreateNewOrganization())->handle($user); // Add members $organization->addUser($user, OrganizationRole::ADMINISTRATOR); $organization->addUser($member, OrganizationRole::MEMBER); // Configure settings $organization->setSetting('app.timezone', 'America/New_York'); $organization->setSetting('features.api_access', true); $organization->save();
Add to Your User Model
use CleaniqueCoders\LaravelOrganization\Concerns\InteractsWithUserOrganization; use CleaniqueCoders\LaravelOrganization\Contracts\UserOrganizationContract; class User extends Authenticatable implements UserOrganizationContract { use InteractsWithUserOrganization; protected $fillable = ['name', 'email', 'password', 'organization_id']; } // Now you can: $user->organizations; // Get all user's organizations $user->currentOrganization; // Get current organization $user->ownedOrganizations; // Get organizations user owns $user->belongsToOrganization($id); // Check membership $user->isAdministratorOf($id); // Check admin role
Documentation
Comprehensive documentation is available in the docs/
directory:
- 📖 Installation Guide - Detailed setup instructions
- 🚀 Usage Guide - Complete usage examples and patterns
- ⚙️ Configuration - All configuration options and customization
- 🎯 Features Overview - Complete feature breakdown
- 🔧 Contracts Documentation - SOLID principles and custom implementations
- 🧩 Components & Actions - Livewire components and action classes
Requirements
- PHP 8.4+
- Laravel 11.0+ or 12.0+
Testing
composer test
Contributing
Please see CONTRIBUTING for details.
Security
Please review our security policy on how to report security vulnerabilities.
License
The MIT License (MIT). Please see License File for more information.