func SetupHTTPRoutes(server *wsevent.Server, noauth *wsevent.Server) { http.HandleFunc("/", controllers.MainHandler) http.HandleFunc("/openidcallback", controllers.LoginCallbackHandler) http.HandleFunc("/startLogin", controllers.LoginHandler) http.HandleFunc("/logout", controllers.LogoutHandler) if config.Constants.MockupAuth { http.HandleFunc("/startMockLogin/", controllers.MockLoginHandler) } http.HandleFunc("/websocket/", func(w http.ResponseWriter, r *http.Request) { if config.Constants.SteamIDWhitelist != "" { session, err := chelpers.GetSessionHTTP(r) allowed := true if err == nil { steamid, ok := session.Values["steam_id"] if !ok { allowed = false } else if !chelpers.IsSteamIDWhitelisted(steamid.(string)) { allowed = false } } else { allowed = false } if !allowed { http.Error(w, "Sorry, but you're not in the closed alpha", 403) return } } session, err := chelpers.GetSessionHTTP(r) var so *wsevent.Client if err == nil { _, ok := session.Values["steam_id"] if ok { so, err = server.NewClient(upgrader, w, r) } else { so, err = noauth.NewClient(upgrader, w, r) } } else { var estr = "Couldn't create WebSocket connection." //estr = err.Error() http.Error(w, estr, 500) return } if err != nil || so == nil { controllers.LogoutSession(w, r) return } //helpers.Logger.Debug("Connected to Socket") err = socket.SocketInit(server, noauth, so) if err != nil { controllers.LogoutSession(w, r) } }) }