Prechádzať zdrojové kódy

clear extclient of a user if deleted

Abhishek Kondur 1 rok pred
rodič
commit
82287fb478
1 zmenil súbory, kde vykonal 17 pridanie a 1 odobranie
  1. 17 1
      controllers/user.go

+ 17 - 1
controllers/user.go

@@ -525,7 +525,23 @@ func deleteUser(w http.ResponseWriter, r *http.Request) {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
 		return
 	}
-
+	// check and delete extclient with this ownerID
+	go func() {
+		extclients, err := logic.GetAllExtClients()
+		if err == nil {
+			for _, extclient := range extclients {
+				if extclient.OwnerID == user.UserName {
+					err = logic.DeleteExtClient(extclient.Network, extclient.ClientID)
+					if err != nil {
+						slog.Error("failed to delete extclient",
+							"id", extclient.ClientID, "owner", user.UserName, "error", err)
+					}
+				}
+			}
+		} else {
+			slog.Error("failed to get extclients", "error", err)
+		}
+	}()
 	logger.Log(1, username, "was deleted")
 	json.NewEncoder(w).Encode(params["username"] + " deleted.")
 }