소스 검색

[Fix] Not all tickets deleted on user deletion (#711)

Dennis 2 년 전
부모
커밋
4657b3419b
1개의 변경된 파일21개의 추가작업 그리고 29개의 파일을 삭제
  1. 21 29
      app/Models/User.php

+ 21 - 29
app/Models/User.php

@@ -94,24 +94,17 @@ class User extends Authenticatable implements MustVerifyEmail
         });
 
         static::deleting(function (User $user) {
-            $user->servers()->chunk(10, function ($servers) {
-                foreach ($servers as $server) {
-                    $server->delete();
-                }
-            });
 
-            $user->payments()->chunk(10, function ($payments) {
-                foreach ($payments as $payment) {
-                    $payment->delete();
-                }
-            });
 
-            $user->tickets()->chunk(10, function ($tickets) {
-                foreach ($tickets as $ticket) {
-                    $ticket->delete();
-                }
+            // delete every server the user owns without using chunks
+            $user->servers()->each(function ($server) {
+                $server->delete();
             });
 
+            $user->payments()->delete();
+
+            $user->tickets()->delete();
+
             $user->ticketBlackList()->delete();
 
             $user->vouchers()->detach();
@@ -238,17 +231,17 @@ class User extends Authenticatable implements MustVerifyEmail
     public function getAvatar()
     {
         //TODO loading the images to confirm they exist is causing to much load time. alternative has to be found :) maybe onerror tag on the <img tags>
-//        if ($this->discordUser()->exists()) {
-//            if(@getimagesize($this->discordUser->getAvatar())) {
-//                $avatar = $this->discordUser->getAvatar();
-//            } else {
-//                $avatar = "https://www.gravatar.com/avatar/" . md5(strtolower(trim($this->email)));
-//            }
-//        } else {
-//            $avatar = "https://www.gravatar.com/avatar/" . md5(strtolower(trim($this->email)));
-//        }
-
-        return 'https://www.gravatar.com/avatar/'.md5(strtolower(trim($this->email)));
+        //        if ($this->discordUser()->exists()) {
+        //            if(@getimagesize($this->discordUser->getAvatar())) {
+        //                $avatar = $this->discordUser->getAvatar();
+        //            } else {
+        //                $avatar = "https://www.gravatar.com/avatar/" . md5(strtolower(trim($this->email)));
+        //            }
+        //        } else {
+        //            $avatar = "https://www.gravatar.com/avatar/" . md5(strtolower(trim($this->email)));
+        //        }
+
+        return 'https://www.gravatar.com/avatar/' . md5(strtolower(trim($this->email)));
     }
 
     /**
@@ -298,9 +291,8 @@ class User extends Authenticatable implements MustVerifyEmail
     public function getActivitylogOptions(): LogOptions
     {
         return LogOptions::defaults()
-            -> logOnly(['role', 'name', 'server_limit', 'pterodactyl_id', 'email'])
-            -> logOnlyDirty()
-            -> dontSubmitEmptyLogs();
+            ->logOnly(['role', 'name', 'server_limit', 'pterodactyl_id', 'email'])
+            ->logOnlyDirty()
+            ->dontSubmitEmptyLogs();
     }
-
 }