Changeset View
Changeset View
Standalone View
Standalone View
src/app/Observers/UserObserver.php
Show First 20 Lines • Show All 89 Lines • ▼ Show 20 Lines | public function deleted(User $user) | ||||
if ($wallet && $wallet->owner) { | if ($wallet && $wallet->owner) { | ||||
$wallet->owner->groups()->each(function ($group) use ($user) { | $wallet->owner->groups()->each(function ($group) use ($user) { | ||||
if (in_array($user->email, $group->members)) { | if (in_array($user->email, $group->members)) { | ||||
$group->members = array_diff($group->members, [$user->email]); | $group->members = array_diff($group->members, [$user->email]); | ||||
$group->save(); | $group->save(); | ||||
} | } | ||||
}); | }); | ||||
} | } | ||||
// TODO: Remove Permission records for the user | |||||
// TODO: Remove file permissions for the user | |||||
} | } | ||||
/** | /** | ||||
* Handle the "deleting" event. | * Handle the "deleting" event. | ||||
* | * | ||||
* @param User $user The user that is being deleted. | * @param User $user The user that is being deleted. | ||||
* | * | ||||
* @return void | * @return void | ||||
▲ Show 20 Lines • Show All 152 Lines • ▼ Show 20 Lines | private static function removeRelatedObjects(User $user, $force = false): void | ||||
->whereIn('wallet_id', $wallets) | ->whereIn('wallet_id', $wallets) | ||||
->get() | ->get() | ||||
->each(function ($entitlement) use ($user, $force) { | ->each(function ($entitlement) use ($user, $force) { | ||||
// Skip the current user (infinite recursion loop) | // Skip the current user (infinite recursion loop) | ||||
if ($entitlement->entitleable_type == User::class && $entitlement->entitleable_id == $user->id) { | if ($entitlement->entitleable_type == User::class && $entitlement->entitleable_id == $user->id) { | ||||
return; | return; | ||||
} | } | ||||
if (!$entitlement->entitleable) { | |||||
return; | |||||
} | |||||
// Objects need to be deleted one by one to make sure observers can do the proper cleanup | // Objects need to be deleted one by one to make sure observers can do the proper cleanup | ||||
if ($force) { | if ($force) { | ||||
$entitlement->entitleable->forceDelete(); | $entitlement->entitleable->forceDelete(); | ||||
} elseif (!$entitlement->entitleable->trashed()) { | } elseif (!$entitlement->entitleable->trashed()) { | ||||
$entitlement->entitleable->delete(); | $entitlement->entitleable->delete(); | ||||
} | } | ||||
}); | }); | ||||
▲ Show 20 Lines • Show All 59 Lines • Show Last 20 Lines |