34 lines
803 B
PHP
34 lines
803 B
PHP
<?php
|
|
|
|
namespace App\Observers;
|
|
|
|
use App\Models\FeatureFlagOverride;
|
|
use Laravel\Pennant\Feature;
|
|
|
|
class FeatureFlagOverrideObserver
|
|
{
|
|
/**
|
|
* Létrehozás/módosítás/törlés után csak az érintett usernek a gyorsítótárazott
|
|
* Pennant-feloldását érvénytelenítjük, a többi felhasználót nem érinti.
|
|
*/
|
|
public function saved(FeatureFlagOverride $override): void
|
|
{
|
|
$this->forget($override);
|
|
}
|
|
|
|
public function deleted(FeatureFlagOverride $override): void
|
|
{
|
|
$this->forget($override);
|
|
}
|
|
|
|
private function forget(FeatureFlagOverride $override): void
|
|
{
|
|
$user = $override->user;
|
|
$flag = $override->featureFlag;
|
|
|
|
if ($user && $flag) {
|
|
Feature::for($user)->forget($flag->name);
|
|
}
|
|
}
|
|
}
|