elrod / laravel-multitenancy-impersonate
There is no license information available for the latest version (v1.0.0) of this package.
Laravel Multitenancy Impersonation from landlord to tenant
v1.0.0
2022-02-23 22:22 UTC
Requires
- php: ^8.0
- spatie/laravel-multitenancy: ^2.3
This package is not auto-updated.
Last update: 2025-03-21 11:43:42 UTC
README
Laravel multitenancy impersonation from landlord to tenant.
This package is made to be used with Spatie Laravel Multitenancy.
Installation
You can install the package via composer:
composer require elrod/laravel-multitenancy-impersonate
Publish Config and Migrations
php artisan vendor:publish
You will see list of things to publish:
Select what you want to post by giving the package index number
Usage
Landlord Controller
The Landlord controller creates the token and redirects to the tenant for automatic login.
The redirectTenant method can be used after creating a tenant
use elrod\MultitenancyImpersonate\Traits\CanImpersonate; class ImpersonateController { use CanImpersonate; public function redirectTenant($id) { $tenant = Tenant::find($id); $redirect_url = "http://{$tenant->domain}/admin"; $token = $this->createToken($tenant,auth()->user(),$redirect_url); $this->impersonate($tenant,$token->token,auth()->user()); $tenant_url = "http://{$tenant->domain}/admin/impersonate"; return redirect("{$tenant_url}/{$token->token}"); } }
Create the routes
Route::get('/admin/impersonate/{token}', function ($token) { $impersonate = ImpersonateToken::where('token',$token)->first(); $user = User::find($impersonate->user_id); Auth::login($user); return redirect()->route('admin'); }); Route::middleware(['auth:sanctum', 'verified'])->get('/admin', function () { return 'Hello World'; })->name('admin');
Credits
License
The MIT License (MIT). Please see License File for more information.