mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-16 09:44:03 +00:00
Compare commits
No commits in common. "e85ee25abc0029bed64d5a3148e08ee3845ad128" and "04a20ca93054c2bb3e37922283e93f7361bf0a42" have entirely different histories.
e85ee25abc
...
04a20ca930
2 changed files with 1 additions and 46 deletions
|
|
@ -7,7 +7,6 @@ namespace Stancl\Tenancy\ResourceSyncing;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphPivot;
|
use Illuminate\Database\Eloquent\Relations\MorphPivot;
|
||||||
use Illuminate\Database\Eloquent\Relations\Pivot;
|
use Illuminate\Database\Eloquent\Relations\Pivot;
|
||||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
|
||||||
use Stancl\Tenancy\Contracts\Tenant;
|
use Stancl\Tenancy\Contracts\Tenant;
|
||||||
use Stancl\Tenancy\Database\Contracts\TenantWithDatabase;
|
use Stancl\Tenancy\Database\Contracts\TenantWithDatabase;
|
||||||
|
|
||||||
|
|
@ -86,7 +85,7 @@ trait TriggerSyncingEvents
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this instanceof MorphPivot) {
|
if ($this instanceof MorphPivot) {
|
||||||
return Relation::getMorphedModel($this->morphClass) ?? $this->morphClass;
|
return $this->morphClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new CentralResourceNotAvailableInPivotException;
|
throw new CentralResourceNotAvailableInPivotException;
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,6 @@ use Stancl\Tenancy\Events\TenantDeleted;
|
||||||
use Stancl\Tenancy\ResourceSyncing\Events\SyncedResourceDeleted;
|
use Stancl\Tenancy\ResourceSyncing\Events\SyncedResourceDeleted;
|
||||||
use Stancl\Tenancy\ResourceSyncing\Listeners\DeleteAllTenantMappings;
|
use Stancl\Tenancy\ResourceSyncing\Listeners\DeleteAllTenantMappings;
|
||||||
use Stancl\Tenancy\ResourceSyncing\Listeners\DeleteResourceMapping;
|
use Stancl\Tenancy\ResourceSyncing\Listeners\DeleteResourceMapping;
|
||||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
config(['tenancy.bootstrappers' => [
|
config(['tenancy.bootstrappers' => [
|
||||||
|
|
@ -1365,49 +1364,6 @@ test('global scopes on syncable models can break resource syncing', function ()
|
||||||
expect($tenant1->run(fn () => TenantUser::first()->name))->toBe('tenant2 user');
|
expect($tenant1->run(fn () => TenantUser::first()->name))->toBe('tenant2 user');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('attach and detach events are handled correctly when using morph maps', function() {
|
|
||||||
config(['tenancy.models.tenant' => MorphTenant::class]);
|
|
||||||
[$tenant] = createTenantsAndRunMigrations();
|
|
||||||
migrateCompaniesTableForTenants();
|
|
||||||
|
|
||||||
Relation::morphMap([
|
|
||||||
'users' => BaseCentralUser::class,
|
|
||||||
'companies' => CentralCompany::class,
|
|
||||||
]);
|
|
||||||
|
|
||||||
$centralUser = BaseCentralUser::create([
|
|
||||||
'global_id' => 'user',
|
|
||||||
'name' => 'Central user',
|
|
||||||
'email' => 'central@localhost',
|
|
||||||
'password' => 'password',
|
|
||||||
'role' => 'user',
|
|
||||||
]);
|
|
||||||
|
|
||||||
$centralCompany = CentralCompany::create([
|
|
||||||
'global_id' => 'company',
|
|
||||||
'name' => 'Central company',
|
|
||||||
'email' => 'company@localhost',
|
|
||||||
]);
|
|
||||||
|
|
||||||
$tenant->users()->attach($centralUser);
|
|
||||||
$tenant->companies()->attach($centralCompany);
|
|
||||||
|
|
||||||
tenancy()->initialize($tenant);
|
|
||||||
|
|
||||||
expect(BaseTenantUser::whereGlobalId('user')->first())->not()->toBeNull();
|
|
||||||
expect(TenantCompany::whereGlobalId('company')->first())->not()->toBeNull();
|
|
||||||
|
|
||||||
tenancy()->end();
|
|
||||||
|
|
||||||
$tenant->users()->detach($centralUser);
|
|
||||||
$tenant->companies()->detach($centralCompany);
|
|
||||||
|
|
||||||
tenancy()->initialize($tenant);
|
|
||||||
|
|
||||||
expect(BaseTenantUser::whereGlobalId('user')->first())->toBeNull();
|
|
||||||
expect(TenantCompany::whereGlobalId('company')->first())->toBeNull();
|
|
||||||
});
|
|
||||||
|
|
||||||
function addTenantIdConstraintToPivot(string $pivotTable): void
|
function addTenantIdConstraintToPivot(string $pivotTable): void
|
||||||
{
|
{
|
||||||
Schema::table($pivotTable, function (Blueprint $table) {
|
Schema::table($pivotTable, function (Blueprint $table) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue