UserGroupObserver.php 826 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace App\Observers;
  3. use App\Jobs\VNet\reloadNode;
  4. use App\Models\Node;
  5. use App\Models\UserGroup;
  6. use Arr;
  7. class UserGroupObserver
  8. {
  9. public function created(UserGroup $userGroup): void
  10. {
  11. $nodes = Node::whereType(4)->whereIn('id', $userGroup->nodes)->get();
  12. if ($nodes->isNotEmpty()) {
  13. reloadNode::dispatch($nodes);
  14. }
  15. }
  16. public function updated(UserGroup $userGroup): void
  17. {
  18. $changes = $userGroup->getChanges();
  19. if (Arr::exists($changes, 'nodes')) {
  20. $nodes = Node::whereType(4)
  21. ->whereIn('id', array_diff($userGroup->nodes ?? [], $userGroup->getOriginal('nodes') ?? []))
  22. ->get();
  23. if ($nodes->isNotEmpty()) {
  24. reloadNode::dispatch($nodes);
  25. }
  26. }
  27. }
  28. }