UserObserver.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Observers;
  3. use App\Components\Helpers;
  4. use App\Jobs\VNet\addUser;
  5. use App\Jobs\VNet\delUser;
  6. use App\Jobs\VNet\editUser;
  7. use App\Models\User;
  8. use App\Models\UserSubscribe;
  9. use Arr;
  10. class UserObserver
  11. {
  12. public function created(User $user): void
  13. {
  14. $subscribe = new UserSubscribe();
  15. $subscribe->user_id = $user->id;
  16. $subscribe->code = Helpers::makeSubscribeCode();
  17. $subscribe->save();
  18. $allowNodes = $user->nodes()->whereType(4)->get()->pluck('id');
  19. if ($allowNodes) {
  20. //addUser::dispatch($user->id, $allowNodes);
  21. }
  22. }
  23. public function updated(User $user): void
  24. {
  25. $changes = $user->getChanges();
  26. $allowNodes = $user->nodes()->whereType(4)->get();
  27. if ($allowNodes->isNotEmpty() && Arr::hasAny($changes, ['level', 'group_id', 'port', 'passwd', 'speed_limit', 'enable'])) {
  28. editUser::dispatch($user, $allowNodes);
  29. }
  30. }
  31. public function deleted(User $user): void
  32. {
  33. $allowNodes = $user->nodes()->whereType(4)->get();
  34. if ($allowNodes->isNotEmpty()) {
  35. delUser::dispatch($user->id, $allowNodes);
  36. }
  37. }
  38. }