Utilisateur créé avec succès.
diff --git a/backend/renders/renders.go b/backend/renders/renders.go index be5d2c8..8856502 100644 --- a/backend/renders/renders.go +++ b/backend/renders/renders.go @@ -56,7 +56,7 @@ func AdminUserEdit(db *gorm.DB) http.HandlerFunc { renderPartial(w, "admin_user_edit", data) } } -func AdminUserCreate(db *gorm.DB) http.HandlerFunc { +func CreateUserHandler(db *gorm.DB) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { if err := r.ParseForm(); err != nil { http.Error(w, "Formulaire invalide", http.StatusBadRequest) @@ -65,34 +65,53 @@ func AdminUserCreate(db *gorm.DB) http.HandlerFunc { email := r.FormValue("email") password := r.FormValue("password") - role := models.UserRole(r.FormValue("role")) + role := r.FormValue("role") + monthlyCreditsStr := r.FormValue("monthly_credits") + waToken := r.FormValue("whatsapp_token") + waPhoneID := r.FormValue("whatsapp_phone_number_id") - hashed, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost) + if email == "" || password == "" { + http.Error(w, "Email et mot de passe requis", http.StatusBadRequest) + return + } + + hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost) if err != nil { - http.Error(w, "Erreur hash", http.StatusInternalServerError) + http.Error(w, "Erreur hash mot de passe", http.StatusInternalServerError) return } - ssoid := "sso_" + uuid.New().String() - user := models.User{ - Email: email, - Password: string(hashed), - Role: role, - IsActive: true, - SSOID: ssoid, + monthlyCredits := uint(100) + if monthlyCreditsStr != "" { + if val, err := strconv.Atoi(monthlyCreditsStr); err == nil { + monthlyCredits = uint(val) + } } - if err := db.Create(&user).Error; err != nil { - http.Error(w, "Erreur enregistrement", http.StatusInternalServerError) + newUser := models.User{ + Email: email, + Password: string(hashedPassword), + Role: models.UserRole(role), + SSOID: uuid.New().String(), + IsActive: true, + MonthlyCredits: monthlyCredits, + CurrentMonthCredits: monthlyCredits, + WhatsappToken: waToken, + WhatsappPhoneNumberID: waPhoneID, + } + + if err := db.Create(&newUser).Error; err != nil { + http.Error(w, "Erreur lors de la création", http.StatusInternalServerError) return } - w.Header().Set("HX-Trigger", `{"userCreated":"Utilisateur créé avec succès"}`) - w.Header().Set("HX-Remove", "true") // cache le form - renderPartial(w, "admin_user_row", map[string]interface{}{"User": user}) + w.Header().Set("HX-Trigger", "userCreated") + w.WriteHeader(http.StatusOK) + w.Write([]byte("")) } } + func AdminUserCreateForm() http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { renderPartial(w, "admin_user_create", nil) diff --git a/frontend/templates/admin_user_create.pages.tmpl b/frontend/templates/admin_user_create.pages.tmpl index e338488..ce6324a 100644 --- a/frontend/templates/admin_user_create.pages.tmpl +++ b/frontend/templates/admin_user_create.pages.tmpl @@ -27,12 +27,33 @@ -