Changeset View
Changeset View
Standalone View
Standalone View
src/app/Observers/UserObserver.php
Show All 32 Lines | public function creating(User $user) | ||||
} | } | ||||
} | } | ||||
$user->email = \strtolower($user->email); | $user->email = \strtolower($user->email); | ||||
// only users that are not imported get the benefit of the doubt. | // only users that are not imported get the benefit of the doubt. | ||||
$user->status |= User::STATUS_NEW | User::STATUS_ACTIVE; | $user->status |= User::STATUS_NEW | User::STATUS_ACTIVE; | ||||
// can't dispatch job here because it'll fail serialization | $user->tenant_id = \config('app.tenant_id'); | ||||
} | } | ||||
/** | /** | ||||
* Handle the "created" event. | * Handle the "created" event. | ||||
* | * | ||||
* Ensures the user has at least one wallet. | * Ensures the user has at least one wallet. | ||||
* | * | ||||
* Should ensure some basic settings are available as well. | * Should ensure some basic settings are available as well. | ||||
▲ Show 20 Lines • Show All 53 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(); | ||||
} | } | ||||
}); | }); | ||||
} | } | ||||
// Debit the reseller's wallet with the user negative balance | |||||
$balance = 0; | |||||
foreach ($user->wallets as $wallet) { | |||||
// Note: here we assume all user wallets are using the same currency. | |||||
// It might get changed in the future | |||||
$balance += $wallet->balance; | |||||
} | |||||
if ($balance < 0 && $user->tenant && ($wallet = $user->tenant->wallet())) { | |||||
$wallet->debit($balance * -1, "Deleted user {$user->email}"); | |||||
} | |||||
} | } | ||||
/** | /** | ||||
* 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 244 Lines • Show Last 20 Lines |