Browse Source

prevent creating admin if one already exists

Matthew R Kasun 3 years ago
parent
commit
4356aea65a
1 changed files with 11 additions and 1 deletions
  1. 11 1
      controllers/userHttpController.go

+ 11 - 1
controllers/userHttpController.go

@@ -348,8 +348,18 @@ func createAdmin(w http.ResponseWriter, r *http.Request) {
 	var admin models.User
 	var admin models.User
 	// get node from body of request
 	// get node from body of request
 	_ = json.NewDecoder(r.Body).Decode(&admin)
 	_ = json.NewDecoder(r.Body).Decode(&admin)
+	hasadmin, err := HasAdmin()
+	if err != nil {
+		returnErrorResponse(w, r, formatError(err, "internal"))
+		return
+	}
+	if hasadmin {
+		returnErrorResponse(w, r, formatError(errors.New("admin user already exists"), "unauthorized"))
+		return
+	}
 	admin.IsAdmin = true
 	admin.IsAdmin = true
-	admin, err := CreateUser(admin)
+	fmt.Println(admin)
+	admin, err = CreateUser(admin)
 
 
 	if err != nil {
 	if err != nil {
 		returnErrorResponse(w, r, formatError(err, "badrequest"))
 		returnErrorResponse(w, r, formatError(err, "badrequest"))