package controllers import ( "InfantrySkillCalculator/models" "log" ) func CreateUser(username string, hashedPassword string, enabled bool, usedCode string) { user := models.User{Username: username, Password: hashedPassword, Enabled: enabled} err := models.DB.Create(&user).Error if err != nil { log.Fatalf("Error while creating user: %v", err) } var code models.ActivationCode err = models.DB. Model(&models.ActivationCode{}). Where("code = ?", usedCode). First(&code).Error if err != nil { log.Fatalf("Error while getting activation code: %v", err) } code.UsedForUsername = username err = models.DB.Save(&code).Error if err != nil { log.Fatalf("Error while updating activation code: %v", err) } user.UserRole = code.UserRole err = models.DB.Save(&user).Error if err != nil { log.Fatalf("Error while updating user role: %v", err) } var bf2042 models.Game err = models.DB. Where("tag = ?", "BF2042"). First(&bf2042).Error if err != nil { log.Fatalf("Error while getting game: %v", err) } userSettings := models.UserSettings{ Username: username, ActiveGameID: bf2042.ID, SquadColors: true, CalcMedian: false, UseCache: true, } models.DB.Create(&userSettings) } func IsUserEnabled(username string) bool { var user models.User models.DB.Where("username = ?", username).First(&user) return user.Enabled } func IsUserAdmin(username string) bool { var user models.User err := models.DB.Where("username = ?", username).First(&user).Error if err != nil { log.Fatal(err) return false } return user.UserRole == models.AdminRole }