27 lines
511 B
PHP
27 lines
511 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Services;
|
|
|
|
use App\Models\Contracts\BelongsToUser;
|
|
use App\Models\Scopes\UserScope;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
final class UserScopeApplier
|
|
{
|
|
private bool $enabled = false;
|
|
|
|
public function enable(): void
|
|
{
|
|
$this->enabled = true;
|
|
}
|
|
|
|
public function applyScope(Model $model): void
|
|
{
|
|
if ($this->enabled && $model instanceof BelongsToUser) {
|
|
$model->addGlobalScope(new UserScope());
|
|
}
|
|
}
|
|
}
|